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

参考资料与链接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

逻辑运算符

  • !
  • &&
  • ||
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于 Swift 重要这个文档所包含的准备信息, 是关于开发的 API 和技术的。这个信息可能会改变, 根据这个文...
    无沣阅读 4,408评论 1 27
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,221评论 0 13
  • 运算符 是可以检查,修改或者组合值的特殊符号或者短语。例如,加法运算符(+)将两个数相加,像let i = 1 +...
    BoomLee阅读 1,867评论 0 4
  • 三 月风吹杨柳面, 十 里芳草碧连天。 年 华似水无痕去, 后 会如期今朝还。 同 砚故交安好否? 学 子老友畅抒...
    芙蓉苑阅读 1,394评论 5 6
  • 当前社会房子是不少屌丝心中的痛。 相亲找对象,房子是不得不被问到的问题。不管房子有多大,位置在哪,首先你得有房对不...
    季叔仲伯阅读 471评论 0 0