美文网首页
Swift笔记二:基本运算符

Swift笔记二:基本运算符

作者: 面试小集 | 来源:发表于2017-08-30 15:44 被阅读14次

    组合赋值运算符

    Swift

    let a = 10;
    let b = a += 10;  //报错
    

    Objective-C

    NSInteger a = 10;
    NSInteger b = a += 10;
    NSLog(@"%d", b);  //20
    

    Swift中复合赋值运算没有返回值。

    元组比较大小

    (1, "zebra") < (2, "apple")   // true,因为 1 小于 2
    (3, "apple") < (3, "bird")    // true,因为 3 等于 3,但是 apple 小于 bird
    (4, "dog") == (4, "dog")      // true,因为 4 等于 4,dog 等于 dog
    

    空合运算符(Nil Coalescing Operator)

    空合运算符:(a ?? b) 将对可选类型 a 进行空判断,如果 a 包含一个值就进行解封,否则就返回一个默认值 b。

    let defaultColorName = "red"
    var userDefinedColorName: String?   //默认值为 nil
    
    var colorNameToUse = userDefinedColorName ?? defaultColorName
    // userDefinedColorName 的值为空,所以 colorNameToUse 的值为 "red"
    

    区间运算符

    闭区间运算符

    闭区间运算符: (a…b), a到b, 包含a和b。 a不能超过b。

    半开区间运算符

    半开区间运算符(a...<b), a到b, 但不包括b的区间。

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

    溢出运算符

    在默认情况下,当向一个整数赋予超过它的容量值时,Swift默认会报错,而不是生成一个无效的数。

    var potentialOverflow = Int16.max
    // potentialOverflow 的值是 32767,这是 Int16 能容纳的最大整数
    potentialOverflow += 1
    
    • 溢出加 &+
    • 溢出减 &-
    • 溢出乘 &*

    demo1: &+

    var unsignedOverflow = UInt8.max
    // unsignedOverflow 等于 UInt8 所能容纳的最大整数 255
    unsignedOverflow = unsignedOverflow &+ 1
    // 此时 unsignedOverflow 等于 0
    

    demo2: &-

    var unsignedOverflow = UInt8.min
    // unsignedOverflow 等于 UInt8 所能容纳的最小整数 0
    unsignedOverflow = unsignedOverflow &- 1
    // 此时 unsignedOverflow 等于 255
    

    demo3: 有符号,符号位参与运算

    var signedOverflow = Int8.min
    // signedOverflow 等于 Int8 所能容纳的最小整数 -128
    signedOverflow = signedOverflow &- 1
    // 此时 signedOverflow 等于 127
    

    相关文章

      网友评论

          本文标题:Swift笔记二:基本运算符

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