×
广告

Swift笔记二:基本运算符

96
RiverLi
2017.08.30 15:44* 字数 225

组合赋值运算符

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
Web note ad 1