swift 基本运算符

2023-11-22 09:07:59 浏览数 (2)

术语

  • 一元运算符对单一操作对象操作,如 -a 一元运算符分前置运算符和后置运算符
    • 前置运算符需紧跟在操作对象之前,如 !b
    • 后置运算符需紧跟在操作对象之后,如 c!
  • 二元运算符操作两个操作对象,是中置的,因为它们出现在两个操作对象之间,如 2 3
  • 三元运算符操作三个操作对象,和 C 语言一样,Swift 只有一个三元运算符,就是三目运算符,a ? b : c

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


赋值运算符

代码语言:javascript复制
let a = 10
let (x, y) = (1, 2)

算术运算符

代码语言:javascript复制
1   2    
3 - 1   
2 * 3
10 / 2
10 % 2
//字符串相加
"hello, "   "world"    // 等于 "hello, world"

组合赋值运算符

代码语言:javascript复制
var a = 1
a  = 2   //a = a   2 

比较运算符

  • 常见比较
代码语言:javascript复制
1 == 1   // true
2 != 1   // true
2 > 1    // true
1 < 2    // true
1 >= 1   // true
2 <= 1   // false
  • 比较运算多用于条件语句
代码语言:javascript复制
let name = "world"
if name == "world" {
    print("hello, world")
} else {
    print("I'm sorry (name), but I don't recognize you")
}
// 输出 "hello, world", 因为 `name` 就是等于 "world"
  • 元组比较(元组内有bool值不可以比较) 如果两个元组的元素相同,且长度相同的话,元组就可以被比较。比较元组大小会按照从左到右、逐值比较的方式,直到发现有两个值不等时停止。如果所有的值都相等,那么这一对元组我们就称它们是相等的
代码语言:javascript复制
(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 标准库只能比较七个以内元素的元组比较函数。如果你的元组元素超过七个时,你需要自己实现比较运算符


三目运算符

代码语言:javascript复制
let m = 30
let n = 20
let result = m > n ? m : n  //30

空合运算符

代码语言:javascript复制
let a = 10
var b : Int?  //默认值为 nil
let c = b ?? a //10

区间运算符

  • 闭区间运算符
代码语言:javascript复制
for index in 1...5 {
    print(index)
}  //1  2 3 4  5
  • 半开区间运算符
代码语言:javascript复制
for index in 1..<5 {
    print(index)
}  //1 2 3 4
  • 单侧区间
代码语言:javascript复制
for index in array[2...] {
     print(index)
}  //3 4 5

for index in array[...3] {
     print(index)
} //1 2 3 4

for index in array[..<3] {
     print(index)
}//1 2 3

逻辑运算符

代码语言:javascript复制
let flag = false
if !flag {
   print("pass")
} //pass

let flag = false
let flag1 = true
if flag || flag1 {
   print("pass")
}  //pass

if flag && flag1 {
   print("pass")
}

0 人点赞