Swift5-外行零基础入门_5-运算符

运算符

什么是运算符?

所谓运算符,其实可以简单理解为小学数学中的加减乘除。
我们可以对常量和变量进行运算。

// 比如,我们定义一个长方形的长为a,宽为b
let a = 3
let b = 6
// 那么,长方形的面积就是
var area = a * b    // 18

但是,事情没有那么简单。还有很多地方使用和利用了这样的一些符号:+ - * / % = > < !。于是,很多语言,包括Swift,就把用到这些符号的地方,都叫做运算符。
其实,就是符号,很多跟运算已经没啥关系了。

被称为运算符的都有哪些?

  • 算术运算符
    这个最好理解,也是我们理解运算符的起点。
    算术运算符分为加,减,乘,除,求余。加 减 乘 除很好理解,他们对应的键盘符号是+ - * /
    求余的符号是%,它的意思不是百分比,而是求余数,比如,10除以3,结果是3,余1,用代码表达就是:
    let x = 10
    let y = 3
    var remainder = 10 % 3  // 1
    
  • 赋值运算符
    把某个值,赋给某个常量或变量,因为借用了=这个运算符,称之为赋值运算符。
    之前我们已经用过很多了,比如let a = 10,就是把10赋值给常量a。
    还有高级一些的用法,比如let (x,y) = (1,2),那么x的值就是1,y的值就是2。
    再比如已经定义了let a = 10; var b = 20,可以接着定义b = a,这时b的值就是10。关于这个问题,很多大神喜欢讲内存、指针等原理,对于我这样的新手来时,亲手打印结果试一试最安心。
    赋值运算符另一种高级的形式是,+= -=,举个例子:
    var a = 10
    a += 1
    print(a) // 11
    
    因此,我们可以看出,a += 1,就是 a = a + 1
  • 比较运算符
    就是比较两个数据,等于==,不等于!=,大于>,大于等于>=,小于<,小于等于<=。它们返回的值就是布尔值,也就是true 或 false,比如1 == 1,返回的就是true。你现在就可以在Playground中试一下其他几种比较运算符。
    因为它们返回的是一个布尔值,因此,常常用在if语句中,作为判断的条件。比如,如果判断你的分数大于90分,就给出优秀的评语。
    var score = 95
    if score >= 90 {
      print("优秀!")
      }
    
    关于if语句的具体用法,我们后面还会介绍,这里,你只需要理解意思即可。
  • 逻辑运算符
    简单来说,就是非 与 或,使用的符号是! && ||
    先举个例子,
    1. 如果开车超速并且被拍到,就会被扣分;// 与
    2. 如果开车超速或者疲劳驾驶,都很危险;// 或
    3. 如果开车不超速,就是良好市民。// 非
      用代码表示的话,就是这样:
    let a = 超速
    let b = 被拍
    let c = 疲劳驾驶
    if a && b {
      print("扣分!")
    }
    if a || c {
      print("太危险了!")
    }
    if !a {
      print("良好市民!")
    }
    
    上面这段代码只是展示逻辑关系,其实并不能被swift直接运行,逻辑运算符结合的都是布尔值,我们改造一下:
    // swift支持中文,我们直接使用中文表达,实际开发中不建议
    let 超速了 = false
    let 被拍 = false
    let 疲劳驾驶 = true
    // 我们将是否超速,是否被拍等定义为布尔值。可以改变这些布尔值,从而得到下面不同的结果。
    if 超速了 && 被拍 {
        print("扣分")
    }
    if 超速了 || 疲劳驾驶 {
        print("太危险了!")
    }
    if !超速了 {
      print("良好市民!")
    }
    
    请在Playground中自由练习下吧,设置一些好玩的情形,尝试各种可能。这样做很重要,亲手敲出的代码才能帮助你加深理解。
  • 三元运算符
    什么是三元?有没有一元?二元?有的,
    一元,就是-a+a!a
    二元,就是a+b
    也就是说,一元中,只有一个对象a,二元中,有两个对象a b,同理,三元中,就有三个对象,格式是这样的:
    c ? a : b,意思是,c成立吗?成立的话,结果是a,不成立的话,结果是b
    let c = true
    let a = 1
    let b = 2
    c ? a : b // 1 
    
  • 区间运算符
    意思是某个区间范围的值,有两种形式,a...ba..<b,两种形式。举例说明:
let range1 = 1...5
for i in range1 {
    print(i)
}
// 打印1,2,3,4,5五个数字

let range2 = 1..<5
for i in range2 {
    print(i)
}
// 打印1,2,3,4四个数字

小结与预告

所谓运算符,除了算术运算符中是我们通常说的数学运算类似,其他跟数学运算都没什么关系。
因为所有的数据类型其实都要靠运算符操作,因此,掌握他们就很重要。当然,后续会不断的用到并加强的。
对于文字型或者说字符型的处理,还有一套方法,我们下节见。

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

推荐阅读更多精彩内容