@autoclosure
聚合运算符
替代
三目运算符
优化重复运算
自定义运算符不在需要打括号
无参函数,返回值也是函数,只有在调用时才会执行,使用@autoclosure后编译器自动转换常量参数包装为函数;
swift3的autoclosure的顺序做了调整在参数后
聚合运算符
替代
三目运算符
优化重复运算
自定义运算符不在需要打括号
无参函数,返回值也是函数,只有在调用时才会执行,使用@autoclosure后编译器自动转换常量参数包装为函数;
swift3的autoclosure的顺序做了调整在参数后
2017-01-22
FloatingPoint协议的2项内容:
常用数据类型遵循FloatingPoint方便类型转换;
定义pi, infinity, nan方便数据处理;
指定数据为FloatingPoint范型无需进行转型操作;
FloatingPoint定义了pi常量
Int,CGFloat, Float遵守FloatingPoint
定义Inifinity
T.infinity
定义NaN(Not Number)
myNan = Double.nan
myNan > 0 //false
divide(10.0, 0.0).isNaN
数据处理时应用NaN
非法数组转换为nan方便计算
方便过滤非数值
常用数据类型遵循FloatingPoint方便类型转换;
定义pi, infinity, nan方便数据处理;
指定数据为FloatingPoint范型无需进行转型操作;
FloatingPoint定义了pi常量
Int,CGFloat, Float遵守FloatingPoint
定义Inifinity
T.infinity
定义NaN(Not Number)
myNan = Double.nan
myNan > 0 //false
divide(10.0, 0.0).isNaN
数据处理时应用NaN
非法数组转换为nan方便计算
方便过滤非数值
2017-01-22
index数组的索引,也适用于字符串
现在废弃了successor方法
arr.index(after: i)获得后继,不脱离数组的索引,采用数组的方法获得索引;
let j: String.Index = str.startIndex
现在废弃了successor方法
arr.index(after: i)获得后继,不脱离数组的索引,采用数组的方法获得索引;
let j: String.Index = str.startIndex
2017-01-22
#keyPath用#替代字符串减少错误拼写情况
forKeyPath
label.value(forKeyPath: superviewColor)
forKeyPath
label.value(forKeyPath: superviewColor)
2017-01-22
where的用处:
可以用于switch语句,没有太大变化;
可以用于if语句,用于模式判断,表达限制模式的要求,现在只需要用逗号替换;
guard语句,对可选型进行解包后,可以用where语句对解包后的语句进行约束;现在也采用逗号替换,并把解包与检测参数合法性的方法分别执行
guard
let a = a, let b = b, let c = c
a > 0, b <= 0, c%2 == 0 else{
return nil
}
return 0
}
where语句的使用位置发生了改变,类似解包与合法性验证的分开表达
可以用于switch语句,没有太大变化;
可以用于if语句,用于模式判断,表达限制模式的要求,现在只需要用逗号替换;
guard语句,对可选型进行解包后,可以用where语句对解包后的语句进行约束;现在也采用逗号替换,并把解包与检测参数合法性的方法分别执行
guard
let a = a, let b = b, let c = c
a > 0, b <= 0, c%2 == 0 else{
return nil
}
return 0
}
where语句的使用位置发生了改变,类似解包与合法性验证的分开表达
2017-01-22
枚举型
大量字符串标识符 调整为 枚举型变量,首字母大写修改为小写;
Optional<String>.none就是nil的本质,现在none变成了小写
大量字符串标识符 调整为 枚举型变量,首字母大写修改为小写;
Optional<String>.none就是nil的本质,现在none变成了小写
2017-01-22
动词函数名称:直接作用原对象
动名词函数名称:产生变化的返回值,不改变原值
scores.sorted得到一个排序的数组,scores的值没用变化
reversed不改变原数组
reverse会改变原数组
倒序循环语句
for i in (1...5).reversed(){
}
动名词函数名称:产生变化的返回值,不改变原值
scores.sorted得到一个排序的数组,scores的值没用变化
reversed不改变原数组
reverse会改变原数组
倒序循环语句
for i in (1...5).reversed(){
}
2017-01-22