范围运算符
- a...b:全封闭范围运算符,包括a和b
- a..<b:半封闭范围运算符,包括a,不包括b
注意:
- a<=b,否则throw exception
func range_op()
{
let a = 5;
let b = 8;
print("Closed Range")
for i in a...b
{
print(i, separator: "")
}
print("Half-Open Range")
for i in a..<b
{
print(i, separator: "")
}
}
output:
Closed Range
5
6
7
8
Half-Open Range
5
6
7
Nil-Coalescing运算符
- a ?? b
注意:
- a必须为optional
- b必须与a类型一致,optional或non-optional皆可,这样才能确保表达式类型一致
- a ?? b等同于a != nil ? a! : b
- 若a为non-nil,b不做评估,即短路评估
func nil_coalescing_op()
{
var defaultColor: String?
let definedColor = "Blue"
var color: String;
defaultColor = nil
color = defaultColor ?? definedColor
print("color = \(color)")
defaultColor = "Red"
color = defaultColor ?? definedColor
print("color = \(color)")
}
output:
color = Blue
color = Red