1.泛型的基本使用:
/// 定义了一个泛型结构体MyStruct, /// 其泛型形参为T struct MyStruct<T> { /// 用泛型T定义存储式成员属性t var t: T /// 定义了一个实例方法method, /// 其参数类型也为T类型 mutating func method(value: T) { t = value print("new value = (value)") } /// 定义类型方法swap, /// 它是一个泛型方法, /// 其泛型形参为E static func swap<E>(a: inout E, b: inout E) { // 这里tmp为E类型 let tmp = a a = b b = tmp } }
2.类型约束:
3.泛型where从句: