泛型(Generics)

泛型类型

关联类型(Associated Type)

类型约束

协议类型的注意点

泛型解决

不透明类型(Opaque Type)
- 解决方案②:使用some关键字声明一个不透明类型
func get(_ type: Int) -> some Runnable { Car() }
var r1 = get(0)
var r2 = get(1)
- some限制只能返回一种类型

some
- some除了用在返回值类型上,一般还可以用在属性类型上
protocol Runnable { associatedtype Speed }
class Dog : Runnable { typealias Speed = Double }
class Person {
var pet: some Runnable {
return Dog()
}
}
可选项的本质

- 多重可选项

网友评论