Swift2.2 学习笔记(九) ___基本运算符

  • 基本运算符
  • 术语
  • 赋值运算符
  • 赋值运算 a = b,表示用b的值来初始化或更新a的值
let b = 10
var a = 5
a = b
//a 现在等于 10

如果赋值的右边是一个多元组,它的元素可以马上被分解多个常量或变量

let (x, y) = (1,2)
// x 等于 1, y 等于 2
//与 c & oc 不同,Swift的赋值操作并不返回任何值,所以一下代码是错误的
//if x = y {
//    // 词句是错误的
//}
  • 数值运算
  • Swift 让所有数值类型都支持了基本的四则运算
  • 加法 +
  • 减法 -
  • 乘法 *
  • 除法
"hello, " + "world"     // "hello, world"
  • 求余运算
  • 求余运算 a % b 是计算 b 的多少倍刚刚好可以容入 a , 多出来的那部分叫余数.
  • 求余运算(%)在其他语言也叫取模运算.
9 % 4  // 1
-9 % 4 // -1
  • 自增和自增运算
  • 和 C 一样, Swift 也 供了方便对变量本身加 1 或减 1 的自增 ++ 和自减 – 的运算符.
  • 每调用一次 ++i, i 的值就会加 1. 实际上, ++i 是 i = i + 1 的简写, 而 –i 是 i = i - 1 的简 写.
  • ++ 和 –既是前置又是后置运算. ++i, i++, –i 和 i– 都是有效的写法.
  • 当 ++ 前置的时候, 先自増再返回.
  • 当 ++ 后置的时候, 先返回再自增.
var i = 0
++i     //现在 i = 1

var c = 0
let d = ++c
print("\(c),\(d)") // c 和 d 现在都是 1
let e = c++
print("\(c),\(e)") // c 等于2, e 等于1

/*
 * 单目负号
 */
 let three = 3
let minusThree = -three //-3
let plusThree = -minusThree //3

//单目正号
let minusSix = -6
let alsoMinusSix = +minusSix //-6

//复合赋值
var aa = 1
aa += 2   //3
// a += 2 是 a = a + 2 的简写
  • 比较运算
  • 所有标准 C 中的比较运算都可以在 Swift 中使用.
  • 等于 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"
  • 三目条件运算
  • 原型是 问题 ? 答案1 : 答案2.
  • 它简洁地表达根据 问题 成立与否作出二选一的操作. 如果 问题 成立, 返回 答案1 的结 果; 如果不成立, 返回 答案 2 的结果.
    *
let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)  // 90
  • 区间运算符
  • 闭区间运算符 a…b 定义一个包含从 a 到 b (包括 a 和 b)的所有值的区间.
for index in 1...5 {
    print("\(index) * 5 = \(index * 5)" )
}
/**
 1*5=5
 2 * 5 = 10
 3 * 5 = 15 
 4 * 5 = 20 
 5 * 5 = 25
*/
  • 半闭区间
  • 半闭区间 a..
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
  • 逻辑运算
  • 逻辑非 !a
  • 逻辑与 a && b
  • 逻辑或 a || b
 let allowedEntry = false
if !allowedEntry {
    print("ACCESS DENIED")
}
//prints:"ACCESS DENIED\n"

//逻辑与: a && b 表达了只有 a 和 b 的值都为 true 时, 整个表达式的值才会是 true .
let enteredDoorCode = true
let passedRetinaScan = false
if enteredDoorCode && passedRetinaScan {
    print("Welcome!")
} else {
    print("ACCESS DENIED")
}
// Prints "ACCESS DENIED"

//逻辑或:a || b 是一个由两个连续的 | 组成的中置运算符. 它表示了两个逻辑表达式的其中 一个为 true, 整个表达式就为 true.
let hasDoorKey = false
let knowsOverridePassword = true
if hasDoorKey || knowsOverridePassword {
    print("Welcome!")
} else {
    print("ACCESS DENIED")
}
// Prints "Welcome!"

//组合逻辑
if enteredDoorCode && passedRetinaScan || hasDoorKey || knowsOverridePassword {
    print("Welcome!")
} else {
    print("ACCESS DENIED")
}
// Prints "Welcome!"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值