美文网首页Swift
Swift - Operators

Swift - Operators

作者: ienos | 来源:发表于2018-05-23 14:38 被阅读9次

    赋值运算符

    let b = 10
    if x = y { // 无效,因为赋值之后不会有返回值 }
    

    算术运算符

    • { + - * / } - { 加、减、乘、除 }
    • “+” 支持 String 的连接
    "hello" + "world"
    

    取余运算符

    • % 支持负数 { -9 % 4 = -1}
    • a % b ,忽略 b 为负数,因为 a % b 和 a % -b 是一样的结果

    复合赋值运算符

    var a = 1
    a += 2
    // 该运算符没有返回值 
    let b = a += 2 // error
    

    比较字符串

    • 返回 true or false
    • { == != > < >= <= }
    • { === !=== } // 两个对象是否相等

    比较元组数值

    • 比较顺序从左到右(类型必须一致,若含有 Bool 类型则不能比较)
    • 相等:需要里面部分都对应相等。
    • 大于小于:如果第一个值相等,则推到下一个值进行比较(依次类推),当前比较的值进行比较,若不相等,得出结果并忽略后面元组的其他值的比较。
    • 只能比较小于七个值的元组,如果需要更多,需要自己实现运算符
    ("blue", 2) < ("purple", 1) // OK return ture
    ("blue", false) < ("purple", ture) // Error
    

    三元运算符

    避免多个三元进行复合

    let hasHeader = ture 
    let rowHeight = (hasHeader ? 30 : 50)
    

    合并空运算符

    a ?? b  等价于 a ! = nil ? a! : b
    // 如果可选 a 解包有值,return a! ,为 nil return b(b 必须与 a 是同类型的),若 a 不为空,b 不执行(短路)
    

    范围运算符

    闭区间 (a..b) 包括 a 和 b , a 不能大于 b

    for index in 1..5 {
    }
    

    半开区间

    (a..<b)不包括b , a 不能大于 b , a 等于 b range 将为空

    for i in 0..<array.count {
    }
    

    一边

    for name in names[2...] {
    }
    for name in names[...2] {
    }
    let range = ...5
    range.contains(7) // false
    

    逻辑运算符

    • !a 、&&、||
    • && 和 || 左结合 + 短路 + 括号标明优先级使表达式更清晰

    相关文章

      网友评论

        本文标题:Swift - Operators

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