swift中的基本运算符:赋值运算符、数学运算符(包括取余, 余数运算符、浮点数取余、增量与减量运算符、复合赋值操作符和一元减运算符)、比较运算符、三目运算符、范围运算符(包括封闭范围运算符和半封闭区域运算符)、逻辑运算符(!、&&、||以及复合运算符)…
赋值运算符
let b = 10
var a = 5
a = b
println(a)
/*
//与C及Objective-C不同,Swift中赋值运算符并不将自身作为一个值进行返回。所以以下的代码是不合法的:
//此特性帮助你避免因粗心将 等于(==)写成 赋值运算符 (=) 而引起的错误。因为 if a = b 这样写是无效的
if a = b {
//错误, 因为 a = b 并不会返回一个值
}
*/
数学运算符
var x1 = 1 + 2
var x2 = 10.0 / 2.5
//两个字符串通过+号组成一个新的字符串
let dog: Character = "��"
let cow: Character = "��"
let dogCow = dog + cow
//不同于C和Objective-C,默认情况下Swift的算术运算符不允许值溢出。
//你可以通过Swift的溢出运算符来选择值的溢出情况(例如 a & + b)
①取余, 余数运算符
//余数运算符(a % b)a是b的几倍并且返回被留下的值(叫作余数)
var x3 = 9 % 4
②浮点数取余
var x4 = 8 % 2.5
③增量与减量运算符
var x5 = 0
let y1 = ++x5
let y2 = x5++ // 与c、oc一样
④复合赋值操作符
var x6 = 1
x6 += 2 //等价于 x6 = x6 + 2
⑤一元减运算符
let three = 3
let minusThree = -three // -3
let plusThree = -minusThree // 3
⑥一元加运算符, 一元加运算符返回的值, 不做任何的变动
let minusSix = -6
let alsoMinusSix = +minusSix // -6
比较运算符
和c、oc一致:==、!= 、>、<、>=、<=
三目运算符
其形式为 question? answer1: answer2
三元条件运算符是下面的代码的简化:
if question {
answer1
} else {
answer2
}
比如:
let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
println(rowHeight) // 结果为90
范围运算符
①封闭范围运算符, (a…b)定义了一个范围从a到b,并且包含a和b的值,即[a,b]
for index in 1...5 {
println("\(index) times 5 is \(index * 5)")
}
②半封闭区域运算符(包头不包尾), (a..b)定义了范围从a到b,包含a的值,但是不包含b的值,即[a,b)
let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..count {
println("Person \(i) is called \(names[i])")
}
逻辑运算符
①逻辑非运算符 !
let entry = false
if !entry {
println("ok")
}
②逻辑与运算符 &&
let enteredDoorCode = true
let passedRetinaScan = false
if enteredDoorCode && passedRetinaScan {
println("Welcome!")
}else {
println("access denied")
}
③逻辑或运算符 ||
let hasDoorKey = false
let password = true
if hasDoorKey || password {
println("Welcome!")
}else {
println("access denied")
}
④复合逻辑表达式
if enteredDoorCode && passedRetinaScan || hasDoorKey || password {
println("Welcome!")
}else {
println("access denied")
}