协议与动态调度

Swift Hard protocols

任务 «协议与动态调度»

实现一个基于协议的数据序列化处理系统。定义一个 `Serializable` 协议,要求实现 `func serialize() -> String` 方法。创建结构体 `User`(包含字段 name: String, age: Int)、`Address`(包含字段 city: String, street: String)、`Product`(包含字段 id: Int, title: String, price: Double)。每个结构体必须遵循 `Serializable` 协议:返回类似 JSON 的字符串(例如:{"name":"John","age":30})。编写函数 `func processSerialization<T: Serializable>(_ items: [T]) -> [String]`,该函数接收一个遵循协议的元素数组,并返回序列化字符串数组。元素顺序保持不变。限制条件:字符串只能包含拉丁字母、空格和数字;无需转义。输出:每行一个字符串。

输入格式

第一行是一个整数 N(1 ≤ N ≤ 100)——对象数量。随后对于每个对象:一行类型(User、Address、Product)以及对应的字段(用空格分隔)。对于 User:name (String) age (Int)。对于 Address:city (String) street (String)。对于 Product:id (Int) title (String) price (Double)。

输出格式

N 行,每行是对应对象按指定格式的序列化结果。

示例

示例 1

输入
2 Address Paris RueDeRivoli Product 42 Book 12.5
输出
{"city":"Paris","street":"RueDeRivoli"} {"id":42,"title":"Book","price":12.5}

示例 2

输入
3 2 3 1
输出

示例 3

输入
3 https://httpbin.org/delay/1 https://httpbin.org/delay/2 https://httpbin.org/delay/0.5 1000
输出
main.swift