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

2018-10-10  本文已影响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

举例

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

逻辑运算符

上一篇下一篇

猜你喜欢

热点阅读