美文网首页
swift 4.x 基本运算符

swift 4.x 基本运算符

作者: redstar110 | 来源:发表于2019-10-22 14:16 被阅读0次

    1. 简单赋值运算符

    2. 复合赋值运算符

    3. 比较运算符

    4. 正号和负号运算符

    5. 标准算术运算符

    6. 取余运算符

    7. 逻辑运算符

    8. 三目条件运算符

    9. 区间运算符

    区间运算符有两种:
    (1)...
    闭区间运算符,a...b表示[a, b]。
    (2)..<
    半闭半开区间运算符,a..<b表示[a, b)。
    几点说明:
    1)当a和b都是整数时,a...b等价于a..<(b + 1)。
    2)当a等于b时,a..<b表示空区间。
    3)a不能大于b,否则会导致运行时错误。
    4)如果b是负数,必须用小括号将其括起来,否则会导致编译错误。

    (5...8).forEach { print($0) }
    
    // 当a和b都是整数时,a...b等价于a..<(b + 1)
    (5..<9).forEach { print($0) }
    
    // 当a等于b时,a..<b表示空区间
    (5..<5).forEach { print($0) }
    
    // a不能大于b
    // 9...8
    
    // a不能大于b
    // 9..<8
    
    // 如果b是负数,必须用小括号将其括起来
    // -5...-2
    
    // 如果b是负数,必须用小括号将其括起来
    // -5..<-2
    
    // 如果b是负数,必须用小括号将其括起来
    -5...(-2)
    -5..<(-2)
    
    /*
     半闭半开区间运算符在遍历数组时比较有用,因为数组元素的索引是从0开始的。
     */
    let array = ["Swift", "Java", "Kotlin", "Objective-C"]
    
    for i in 0..<array.count {
        print("\(array[i])")
    }
    /*
     调用区间的contains(_:)方法可以判断区间内是否包含参数指定的元素。
     */
    (5..<9).contains(8)
    (5..<9).contains(9)
    /*
     访问区间的isEmpty属性可以判断区间是否为空。
     */
    (5..<9).isEmpty
    (5..<5).isEmpty
    /*
     访问区间的count属性可以取得区间的元素个数。
     */
    (5..<9).count
    (5..<5).count
    

    10. NilCoalescing运算符

    NilCoalescing运算符用??表示,其语法格式为:a ?? b,对应的运算规则为:如果a为nil,返回b的值;如果a不为nil,返回a包装的实际值。
    因此,a ?? b等同于:a == nil ? b : a!。其中,a总是可选类型,b的类型必须与a包装的实际值的类型保持一致。

    var i: Int? = 13
    
    i ?? 18
    
    i = nil
    i ?? 18
    
    let defaultColor = "red"
    var userDefinedColor: String?
    var colorToUse: String
    
    colorToUse = userDefinedColor ?? defaultColor
    
    userDefinedColor = "blue"
    colorToUse = userDefinedColor ?? defaultColor
    
    /*
     NilCoalescing运算符是短路运算符,也就是说,对于a ?? b,如果a不为nil,将不再计算b。
     */
    func make() -> Int {
        print("函数make()被调用了")
        return 18
    }
    
    // i = 5
    i = nil
    
    i ?? make()
    

    11. 运算符的优先级和结合性

    相关文章

      网友评论

          本文标题:swift 4.x 基本运算符

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