美文网首页
2.基本运算符

2.基本运算符

作者: 即使慢走也不停下 | 来源:发表于2021-06-29 11:35 被阅读0次

    因为是对学习成果的记录,因为之前我就是做oc开发的,所以就一些其他语言通用的,在这里就不累赘

    只写一些不常见的,或者是swift专属的

    知识普及:运算符

    运算符分为一元、二元和三元运算符:

    一元运算符对单一操作对象操作(如 -a)。一元运算符分前置运算符和后置运算符,前置运算符需紧跟在操作对象之前(如 !b),后置运算符需紧跟在操作对象之后(如 c!)。

    二元运算符操作两个操作对象(如 2 + 3),是中置的,因为它们出现在两个操作对象之间。

    三元运算符操作三个操作对象,和 C 语言一样,Swift 只有一个三元运算符,就是三目运算符(a ? b : c)。

    受运算符影响的值叫操作数,在表达式 1 + 2 中,加号 + 是二元运算符,它的两个操作数是值 1 和 2。

    赋值运算符(=)、算术运算符(+-*/)、求余运算符(%)、一元负号运算符(-)、一元正号运算符(+)、组合赋值运算符(+= 、-=、 *=、 /=)、比较运算符(== 、!=、>、<、>=、<= 、 ===、 !==)、三元运算符(?:)、逻辑运算符(|| 、&& 、!)暂不做赘述,不明白可以自行百度

    知识点1:元组的比较

    如果两个元组的元素相同,且长度相同的话,元组就可以被比较。比较元组大小会按照从左到右、逐值比较的方式,直到发现有两个值不等时停止。如果所有的值都相等,那么这一对元组我们就称它们是相等的

    (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
    ("blue", false) < ("purple", true) // 错误,因为 < 不能比较布尔类型

    注意:
    1.含有bool值的元组不能进行比较,int和字符串可以比较
    2.Swift 标准库只能比较七个以内元素的元组比较函数。如果你的元组元素超过七个时,你需要自己实现比较运算符

    知识点2:空合运算符

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

    空合运算符是对以下代码的简短表达方法:

    a !=nil? a! : b

    上述代码使用了三元运算符。当可选类型 a 的值不为空时,进行强制解封(a!),访问 a 中的值;反之返回默认值 b。无疑空合运算符(??)提供了一种更为优雅的方式去封装条件判断和解封两种行为,显得简洁以及更具可读性。

    知识点3:区间运算符

    闭区间运算符:a...b 定义一个包含从 a 到 b(包括 a 和 b)的所有值的区间。a 的值不能超过 b
    半开区间运算符:a..<b 定义一个从 a 到 b 但不包括 b 的区间。 之所以称为半开区间,是因为该区间包含第一个值而不包括最后的值。
    单侧区间:2...或者...2,可以表达往一侧无限延伸的区间

    区间运算符的使用场景:

    1、在for 循环中使用

    for index in1...5 {
       print("\(index) * 5 = \(index * 5)")
    }

    // 1 * 5 = 5
    // 2 * 5 = 10
    // 3 * 5 = 15
    // 4 * 5 = 20
    // 5 * 5 = 25

    2. 作为数组的index使用

    let names = ["Anna","Alex","Brian","Jack"]
    for name in names[2...] {
         print(name)
    }

    // Brian
    // Jack

    相关文章

      网友评论

          本文标题:2.基本运算符

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