1:赋值运算符
与 C 语言和 Objective-C 不同,Swift 的赋值操作并不返回任何值。所以以下代码,更优化了.
if x == y {
// 因为 x = y 并不返回任何值
//这个特性使你无法把( == )错写成( = )
}
算术运算符
2:与 C 语言和 Objective-C 不同的是,Swift 默认情况下不允许在数值运算中出现溢出情况。但是你可以使用 Sw ift 的溢出运算符来实现溢出运算(如 a &+ b )。详情参见:高级运算符-溢出运算符 。
3:加法运算符独特使用:
“+”也可以用来字符串拼接
"hello, " + "world" // 等于 "hello, world"
4:不同于 C 语言和 Objective-C,Swift 中是可以对浮点数进行求余的。
8 % 2.5 // 等于 0.5(Double)
5:组合赋值运算符
复合赋值运算没有返回值 。这不同于自增和自减运算符。详情参见:表达式章节里有复合运算符的完整列表。
var a = 1
a += 2 // a 现在是 3
let b = a += 2//这类代码是错误
6: 比较运算符
Swift 也提供恒等 === 和不恒等 !== 这两个比较符来判断两个对象是否引用同一个对象实例。详情参见:在类与结构.
==================================
7:空合运算符
定义:空合运算符( a ?? b )将对可选类型 进行空判断,如果 包含一个值就进行解封,否则就返回一个默认值 .
这个运算符有两个条件:
• 表达式 a必须是Optional类型
• 默认值 b的类型必须要和 存储值的类型保持一致
栗子:
a != nil ? a! : b//上述代码使用了三目运算符。当可选类型 a 的值不为空时,进行强制解封( a! )访问 a 中值,反之当 a 中值为空 时,返回默认值b。
let defaultColorName = "red"
var userDefinedColorName: String? //默认值为 nil
var colorNameToUse = userDefinedColorName ?? defaultColorName
// userDefinedColorName 的值为空,所以 colorNameToUse 的值为 "red"
8:区间运算符
Swift 提供了两个方便表达一个区间的值的运算符。
- 闭区间运算符:
定义:闭区间运算符( a…b )定义一个包含从 a 到 b (包括 a 和 b )的所有值的区间, b 必须大于等于 a 。
用途:迭代一个区间的所有值
for index in 1...5 {//用于迭代闭区间内的值
print("\(index) * 5 = \(index * 5)")
}
- 半开区间运算符
定义:半开区间( a..
let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..<count {
print("第 \(i + 1) 个人叫 \(names[i])") }
8:逻辑运算
• 逻辑非(!a)
• 逻辑与( a && b )
• 逻辑或( a || b )
可以用()来明确优先级,与其他语言一样,不多说了