美文网首页
Swift4.2基础学习笔记(四)

Swift4.2基础学习笔记(四)

作者: 清灬影 | 来源:发表于2018-10-10 11:38 被阅读0次

    参考资料与链接https://www.cnswift.org

    赋值运算符

    let b = 10
    var a = 5
    a = b
    
    //如果赋值符号右侧是拥有多个值的元组,它的元素将会一次性地拆分成常量或者变量
    let (x , y) = (1 , 2)
    

    下面这种情况是不合法的

    if x = y {
        //x = y 并不会返回任何值
    }
    

    算数运算符

    • (+)
    • (-)
    • (*)
    • (/)

    Swift 算术运算符默认不允许值溢出。你可以选择使用 Swift 的溢出操作符(比如 a &+ b 来行使溢出行为。参见 溢出操作符

    //加法运算符也支持String的拼接
    "hello , " + "world"
    

    余数运算符

    • (%)

    a % b 与 a % -b 能够获得相同的答案,当 b为负数时它的正负号被忽略掉了.

    一元加号/减号运算符

    +a
    -b

    组合赋值符号

    var a = 1
    
    a += 1
    等价于
    a = a + 2
    

    比较运算符

    • ( == )
    • ( != )
    • ( > )
    • ( < )
    • ( >= )
    • ( <= )

    注意
    Swift 同时也提供两个等价运算符( === 和 !== ),你可以使用它们来判断两个对象的引用是否相同。

    你同样可以比较拥有同样数量值的元组,只要元组中的每个值都是可比较的。

    (1, "zebra") < (2, "apple")   // true because 1 is less than 2
    (3, "apple") < (3, "bird")    // true because 3 is equal to 3, and "apple" is less than "bird"
    (4, "dog") == (4, "dog")      // true because 4 is equal to 4, and "dog" is equal to "dog"
    

    注意
    Swift 标准库包含的元组比较运算符仅支持小于七个元素的元组。要比较拥有七个或者更多元素的元组,你必须自己实现比较运算符。

    三元条件运算符

    question ? answer1 : answer2
    是以下代码的简写

    if question {
        answer1
    } else {
        answer2
    }
    

    合并空值运算符

    a ?? b
    如果可选项 a 有值则展开,如果没有值,是 nil ,则返回默认值 b 。表达式 a 必须是一个可选类型。表达式 b 必须与 a 的储存类型相同。
    是以下代码的简写

    a != nil ? a! : b
    
    • 如果 a 的值是非空的, b 的值将不会被考虑。这就是所谓的 短路计算 。

    举例

    let defaultColorName = "red"
    var userDefinedColorName: String? // defaults to nil
    var colorNameToUse = userDefinedColorName ?? defaultColorName
    // userDefinedColorName is nil, so colorNameToUse is set to the default of "red"
    

    区间运算符

    闭区间运算符

    a...b

    for index in 1...5 {
        print("\(index) times 5 is \(index * 5)")
    }
    

    半开区间运算符

    a..<b (左闭右开区间)

    let names = ["Anna", "Alex", "Brian", "Jack"]
    let count = names.count
    for i in 0..<count {
        print("Person \(i + 1) is called \(names[i])")
    }
    

    单侧区间

    for name in names[2...] {
        print(name)
    }
    
    for name in names[...2] {
        print(name)
    }
    
    //半开区间运算符的单侧形式
    for name in names[..<2] {
        print(name)
    }
    

    同样可以检测单侧区间是否包含特定的值

    let range = ...5
    range.contains(7)   // false
    range.contains(4)   // true
    range.contains(-1)  // true
    

    逻辑运算符

    • !
    • &&
    • ||

    相关文章

      网友评论

          本文标题:Swift4.2基础学习笔记(四)

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