美文网首页
Swift - 运算符

Swift - 运算符

作者: CDLOG | 来源:发表于2018-09-20 18:10 被阅读7次

    元组赋值

      如果赋值的右边是一个多元组,它的元素可以马上被分解成多个常量或变量:

    let (x, y) = (1, 2)
    // 现在 x 等于 1,y 等于 2
    

    一元负号运算符

    数值的正负号可以使用前缀 -(即一元负号符)来切换:

    let three = 3
    let minusThree = -three       // minusThree 等于 -3
    let plusThree = -minusThree   // plusThree 等于 3, 或 "负负3"
    

    一元负号符(-)写在操作数之前,中间没有空格。

    Swift和 Objective-C 的不同

    1,Swift 的赋值操作并不返回任何值。
    2,Swift 默认情况下不允许在数值运算中出现溢出情况。但是你可以使用 Swift 的溢出运算符来实现溢出运算(如 a &+ b,溢出加法 &+溢出减法 &-溢出乘法 &*)
    3,加法运算符也可用于 String 的拼接

    "hello, " + "world"  // 等于 "hello, world"
    

    4,复合赋值运算没有返回值,let b = a += 2这类代码是错误。这不同于自增和自减运算符。
    5,Swift 也提供恒等(===)和不恒等(!==)这两个比较符来判断两个对象是否引用同一个对象实例。OC是(==)和(!=)

    空合运算符(Nil Coalescing Operator)

    空合运算符(a ?? b)将对可选类型 a 进行空判断,如果 a 包含一个值就进行解封,否则就返回一个默认值 b。表达式 a 必须是 Optional 类型。默认值 b 的类型必须要和 a 存储值的类型保持一致。

    空合运算符是对以下代码的简短表达方法:

    a != nil ? a! : b
    

    区间运算符(Range Operators)

    闭区间运算符

    闭区间运算符a...b)定义一个包含从 ab(包括 ab)的所有值的区间。a 的值不能超过 b。 ‌ 闭区间运算符在迭代一个区间的所有值时是非常有用的,如在 for-in 循环中:

    for index in 1...5 {
        print("\(index) * 5 = \(index * 5)")
    }
    // 1 * 5 = 5
    // 2 * 5 = 10
    // 3 * 5 = 15
    // 4 * 5 = 20
    // 5 * 5 = 25
    
    

    半开区间运算符

    半开区间运算符a..<b)定义一个从 ab 但不包括 b 的区间。 之所以称为半开区间,是因为该区间包含第一个值而不包括最后的值。

    半开区间的实用性在于当你使用一个从 0 开始的列表(如数组)时,非常方便地从0数到列表的长度。

    let names = ["Anna", "Alex", "Brian", "Jack"]
    let count = names.count
    for i in 0..<count {
        print("第 \(i + 1) 个人叫 \(names[i])")
    }
    // 第 1 个人叫 Anna
    // 第 2 个人叫 Alex
    // 第 3 个人叫 Brian
    // 第 4 个人叫 Jack
    
    

    数组有 4 个元素,但 0..<count 只数到3(最后一个元素的下标),因为它是半开区间。

    单侧区间

    闭区间操作符有另一个表达形式,可以表达往一侧无限延伸的区间 —— 例如,一个包含了数组从索引 2 到结尾的所有值的区间。在这些情况下,你可以省略掉区间操作符一侧的值。这种区间叫做单侧区间,因为操作符只有一侧有值。例如:

    for name in names[2...] {
        print(name)
    }
    // Brian
    // Jack
    
    for name in names[...2] {
        print(name)
    }
    // Anna
    // Alex
    // Brian
    
    

    半开区间操作符也有单侧表达形式,附带上它的最终值。就像你使用区间去包含一个值,最终值并不会落在区间内。例如:

    for name in names[..<2] {
        print(name)
    }
    // Anna
    // Alex
    
    

    相关文章

      网友评论

          本文标题:Swift - 运算符

          本文链接:https://www.haomeiwen.com/subject/jovnnftx.html