-
扩展协议时,使用 extension 协议1 where Self: 协议2 对协议类型进行限定,当类型满足协议2时才执行协议1的这个扩展; Self:代表这个类型 self:代表类型的一个实例查看全部
-
系统协议也可以使用扩展,并在扩展中写默认实现(属性和方法的具体实现)查看全部
-
协议可以使用扩展extension; 协议中没法写具体实现,但可在扩展中写属性和方法的实现(默认实现)查看全部
-
类型转换 as查看全部
-
类型检查 is查看全部
-
闭包强引用循环解决--》闭包捕获列表查看全部
-
系统标准库的协议,遵守CustomStringConvertible协议自定义打印该类型时print()的输出查看全部
-
错误处理 try?··· do{ } catch ?{ }查看全部
-
ErrorType查看全部
-
Int的stride方法: (1)num.stride(to: x, by: y) 从num开始到x(不含x); (2)num.stride(through: x, by: y) 从num开始到x(包含x); (3)y是步长(y为正数表示递增,为负数表示递减)查看全部
-
1.结构体在扩展中想改变自身,需要加上mutating关键字; 2.扩展类属性,只能扩展计算型属性,不能扩展存储型属性; 3.扩展类构造函数,只能是便利构造函数(调用指定构造函数); 4.扩展中,书写辅助内容,核心元素需定义在源类里;查看全部
-
结构体内函数要改变自身,要加mutating; 类里的函数改变自身不用加mutating。查看全部
-
seq.reduce(seq[0]){ max($0, $1) } // 结尾闭包,reduce(initial: U, combine: (U, T) -> U) -> U接收两个参数,一个为类型U的初始值,另一个为把类型为U的元素和类型为T的元素组合成一个类型为U的值的函数。最终结果整个数组就变成了一个类型为U的值。查看全部
-
@objc protocol optional func .....查看全部
-
协议里的类型别名(关联类型 associatedtype)查看全部
举报
0/150
提交
取消