美文网首页
Swift基础之基本运算符

Swift基础之基本运算符

作者: 逐水而上 | 来源:发表于2016-07-14 14:53 被阅读125次
很基础的东西,只看没见过的

区别于 C 语言,在 Swift 中你可以对浮点数进行取余运算(%),Swift 还提供了 C 语言没有的表达两数之间的值的区间运算符(a..<b 和 a...b),这方便我们表达一个区间内的数值
如果赋值的右边是一个多元组,它的元素可以马上被分解成多个常量或变量:

let (x, y) = (1, 2)
// 现在 x 等于 1,y 等于 2

与 C 语言和 Objective-C 不同,Swift 的赋值操作并不返回任何值,所以以下代码是错误的:

if x = y {
    // 此句错误, 因为 x = y 并不返回任何值
}

与 C 语言和 Objective-C 不同的是,Swift 默认情况下不允许在数值运算中出现溢出情况。但是你可以使用 Swift 的溢出运算符来实现溢出运算(如 a &+ b)。
加法运算符也可用于 String 的拼接:

"hello, " + "world"  // 等于 "hello, world"

不同于 C 语言和 Objective-C,Swift 中是可以对浮点数进行求余的。

注意:
复合赋值运算没有返回值,let b = a += 2这类代码是错误。这不同于上面提到的自增和自减运算符。
注意: Swift 也提供恒等(===)和不恒等(!==)这两个比较符来判断两个对象是否引用同一个对象实例。更多细节在类与结构。

当元组中的值可以比较时,你也可以使用这些运算符来比较它们的大小。例如,因为 Int 和 String 类型的值可以比较,所以类型为 (Int, String) 的元组也可以被比较。相反,Bool 不能被比较,也意味着存有布尔类型的元组不能被比较。
比较元组大小会按照从左到右、逐值比较的方式,直到发现有两个值不等时停止。如果所有的值都相等,那么这一对元组我们就称它们是相等的。例如:

(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

注意: Swift 标准库只能比较七个以内元素的元组比较函数。如果你的元组元素超过七个时,你需要自己实现比较运算符。

空合运算符(a ?? b)将对可选类型 a 进行空判断,如果 a 包含一个值就进行解封,否则就返回一个默认值 b。表达式 a 必须是 Optional 类型。默认值 b 的类型必须要和 a 存储值的类型保持一致。
空合运算符是对以下代码的简短表达方法:

a != nil ? 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 的区间。 之所以称为半开区间,是因为该区间包含第一个值而不包括最后的值。

相关文章

  • swift 运算符

    Swift 基本运算符 标签(空格分隔): swift 运算符 zybuluo swift 运算符 特性 赋值运算...

  • Swift基础之基本运算符

    很基础的东西,只看没见过的 区别于 C 语言,在 Swift 中你可以对浮点数进行取余运算(%),Swift 还提...

  • 语法目录

    第二章 Swift教程 2.1 基础部分(The Basics) 2.2 基本运算符(Basic Operator...

  • 赋值和算数运算符

    基本概念 一元运算符、二元运算符、三元运算符Swift 只有一个三元运算符 a ? b : c Swift 运算符...

  • Swift之基本运算符

    Swift 的运算符和C以及OC的运算符相比并没有太大的变化,但是有很好的补充。 赋值运算符(因为元组的使用更加丰...

  • swift之基本运算符

    1>运算符术语 运算符有一元、二元和三元运算符. 一元运算符对单一操作对象操作(如-a).一元运算符分前置运算符和...

  • Swift 2.0 学习笔记 2_基本运算符

    //: 基本运算符 // Swift的赋值符(=)不返回值, 算术运算符(+, -, *, /, % 等)会检测并...

  • Operators(运算符)

    基本运算符 Swift 和其他编程语言一样, 有+, -, *, / 等运算符, = 代表赋值符号 复合运算符 有...

  • 27、【Swift】高级运算符 - Advanced Opera

    Swift 运算符基本运算符高级运算符(包括 C 或 Objective-C 所有按位和移位运算符。) 与 C 的...

  • Swift高级运算符

    Swift相比OC在运算符上做了一些改变, 但是基本的运算符,比如 +,-,*,/,%, 逻辑运算符,比如 &&,...

网友评论

      本文标题:Swift基础之基本运算符

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