- 赋值运算不返回值
if a = b
是非法的
let a = b += 2
同样是非法的
不同于 OC,赋值运算不再返回值,区别于(==) - 元组
同时定义变量x
和变量y
let (x,y) = (1,2)
使用附属脚本访问元组元素
let xyz = (1,2,3) print(xyz.0,xyz.1,xyz.2)
使用自定义前缀
let xyz = (x:1,y:2,z:3) print(xyz.x,xyz.y,xyz.z)
- 字符串使用“+”连接
"hello " + "world"
- 使用“==”比较字符串
if name == "world"
- 恒等于和非恒等于
===
和!==
比较两对象是否为同一对象实例 - 关于元组的比较
(1 , "apple") < (2 , "zebra")
第一个元素相比小于和大于直接返回结果,相等的时候再比较第二个元素 - 大于小于不允许比较Bool类型
//("blue", false) < ("purple", true) // Error because < can't compare Boolean values
- a ?? b
a != nil ? a! : b
的简写 - 初始化nil变量
var userDefinedColorName : String?
- 使用“??”判断对象是否为nil,如果为nil使用默认值
colorNameToUse = userDefinedColorName ?? defaultColorName
- 使用“...”遍历,包括两端
for index in 1...5
- 使用“..<”遍历,不包括右端
for i in 0..<count
通常用来遍历数组 - 使用“...”及“..<”作为一目运算符从某值遍历到结尾,swift4.0中新特性
for name in names[2...]
for name in names[...2]
for name in names[..<2]
let range = ...5 //小于等于5
- 逻辑运算与oc保持一致顺序由左至右,使用括号保持可读性
网友评论