Swift泛型
swift 泛型使用 <Type>
来声明
func plus<Number>( _ a:Number, _ b:Number ) -> Number{
return a b
}
可以同时声明多个无关的泛型,使用,分割 <TypeA, TypeB>
Swift 函数定义
代码语言:javascript复制(Int,Int) -> Bool
(Double) -> Void // (Double)
() -> Array<String>
() -> Void
var foo: (Double) -> Void
func doSometing( what: () -> Bool )
Swift 中 struct 与 class的区别
struct | class |
---|---|
Value Type 值类型 | Reference Type 引用类型 |
在swift中是 copy on write | 任何时候都是传递指针 |
Funcional-programing 函数式编程 | Object-programing 面向对象编程 |
不能继承 | 可以继承 |
可变性需要被精确描述 | 默认可变 |
private(set)
private(set) 表达只在set时处于private 而可以正常读取 这样就避免了大量写 set,get
Identifiable
在swift 使用 ForEach 迭代的时候,需要迭代体内的元素是可以迭代的(每个元素要有可唯一区别性)这时候,可以让元素继承(接受) Identifiable接口
代码语言:javascript复制struct student: Identifiable{
id:Int,
name:String
}
ForEach( students ){ index in
// ...
}