协议与动态调度
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