美文网首页
Swift3学习笔记:部分基础运算符

Swift3学习笔记:部分基础运算符

作者: 肉身佛陀 | 来源:发表于2017-02-19 14:59 被阅读12次

部分基础运算符

运算符有一元、二元和三元运算符:

  • 一元运算符在单个操作数(例如-a)上操作。一元前缀运算符出现在其操作数(例如!b)之前,一元后缀运算符出现在其操作数之后(如c!)。

  • 二元运算符操作两个操作数(例如2 + 3),并且是中缀,因为它们出现在它们的两个操作数之间。

  • 三元运算符操作三个操作数。像C一样,Swift只有一个三元运算符,三元条件运算符(a ? b : c)。

1. 分配运算符

  • 该赋值运算符(a = b)初始化或更新的价值a与价值b:
let b = 10
var a = 5
a = b
// a is now equal to 10
  • 如果赋值的右侧是具有多个值的元组,则其元素可以一次分解为多个常量或变量:
let (x, y) = (1, 2)
// x is equal to 1, and y is equal to 2
  • 与C和Objective-C中的赋值运算符不同,Swift中的赋值运算符本身不返回值。以下语句无效:
if x = y {
    // This is not valid, because x = y does not return a value.
}

此功能防止在实际使用(==)时意外使用(=)。通过使if x = y无效,避免这些类型的错误。

2. 算术运算符

  • 加法(+)
  • 加法运算符也支持String级联:

"hello, " + "world" // equals "hello, world"

  • 减法(-)
  • 乘法(*)

注意:与C和Objective-C中的算术运算符不同,Swift算术运算符不允许值默认溢出。可以通过使用Swift的溢出运算符(例如a &+ b)选择值溢出行为。溢出计算请看高级运算符

溢出
var sum:Int8 = 0;
sum =   70 + 70;      //溢出报错
print(sum)
  • 除法(/)

3. 求余运算符

求余数,如例:

sum =   -9 % 4; //sum equals -1
sum =   9 % 4;  //sum equals -1
sum =   -9 % -4;    //sum equals -1
sum =   9 % -4; //sum equals -1

如上所示,a % b的结果和b的符号没有关系,只与a的符号有关系。

4. 复合分配操作符

sum += 2 // 等同于 sum = sum + 2
sum -= 2 // 等同于 sum = sum - 2
sum *= 2 // 等同于 sum = sum * 2
sum /= 2 // 等同于 sum = sum / 2

注意:复合分配操作符没有返回值,let b = a += 2是错误的。

5. 比较运算符

  • 等于(a == b)
  • 不等于(a != b)
  • 大于(a > b)
  • 小于(a < b)
  • 大于或等于(a >= b)
  • 小于或等于(a <= b)
  • Swift比较两个字符串是否完全相同时,可以直接使用(==),如:
let name = "world"
if name == "world" {
    print("hello, world")
} else {
    print("I'm sorry \(name), but I don't recognize you")
}
// Prints "hello, world", because name is indeed equal to "world".
  • 比较元素数量相同、且不超过7个元素、且不包括Bool值元素的元祖;
//当元祖中第一个元素已经得到比较结果时,就不在继续向下比较
(1, "zebra") < (2, "apple")   // true because 1 is less than 2; "zebra" and "apple" are not compared
(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"

6. 三元条件运算符

question ? answer1 : answer2,如果questiontrue,执行answer1;如果为false,执行answer2
格式:

question ? answer1 : answer2
//等同于下面的写法
if question {
    answer1
} else {
    answer2
}

示例:

let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
// rowHeight is equal to 90

7. Nil合并运算符

a ?? b,如果anil,返回b;如果a不为nil,返回a;
格式:

a ?? b
//等同于以下代码
a != nil ? 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"

8. 范围运算符

  • 闭合范围运算符
    (a...b)a不能大于b,运行范围在[a,b]之间;
for index in 1...5 {
    print("\(index) times 5 is \(index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
// 5 times 5 is 25
  • 半开范围运算符
    (a..<b)a不能大于b,运行范围在[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])")
}
// Person 1 is called Anna
// Person 2 is called Alex
// Person 3 is called Brian
// Person 4 is called Jack

9. 逻辑运算符

逻辑运算符修改或组合Bool逻辑值truefalse

  • 逻辑NOT(!a)
  • 逻辑AND(a && b)
  • 逻辑OR (a || b)

注意:&&||是左关联,及从左向右运算,但!的优先级高于&&||

参考链接

用来记录平时遇到的问题,不对之处还望指教。

相关文章

  • Swift3学习笔记:部分基础运算符

    部分基础运算符 运算符有一元、二元和三元运算符: 一元运算符在单个操作数(例如-a)上操作。一元前缀运算符出现在其...

  • SQL学习笔记Day2

    SQL学习笔记day2 SELECT 语句基础算术运算符和比较运算符逻辑运算符 SELECT 语句基础 selec...

  • Swift3学习笔记:基础

    基础 1. 常量和变量 命名 常量和变量不能包含空格、数学字符、箭头、|、-或私有使用的字符(. ;等);不能以数...

  • Swift3学习笔记:高级运算符

    高级运算符(Advanced Operators) 1. 位运算符 位操作符通常在诸如图像处理和创建设备驱动等底层...

  • Linux基础学习笔记2 Shell

    Linux基础学习笔记2 Shell 本文发布于博客frankwtq 这是Linux基础学习笔记的第二部分,主要介...

  • 2017 09 22

    Am:对运算符重载进行学习: 基础定义部分: 1.重载定义:根据自己的需要对C++已提供的运算符进行重载,赋予新的...

  • JS学习笔记基础部分

    整理了下之前JS的学习笔记,基础部分的知识。1.className设置标签的css类的时候不能直接使用class,...

  • HTML 学习笔记(基础部分)

    什么是 HTML? HTML(Hyper Text Mark-up Language )即超文本标记语言,是 WW...

  • CSS 学习笔记(基础部分)

    CSS 是什么? 设想这样一个场景,我们要用 Word 写一篇文档。首先,打开 Word,然后输入内容,再根据需要...

  • Swift 学习笔记 基础部分

    参考书:The Swift Programming LanguageThe Swift Programming L...

网友评论

      本文标题:Swift3学习笔记:部分基础运算符

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