Swift教程(二)

基本运算符

术语

运算符有一元、二元、三元运算符。
受运算符影响的值叫做操作数。

赋值运算符

let b = 10
var a = 5
a = b
// a现在等于10

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

let (x, y) = (1, 2)
// 现在x等于1,y等于2

与C语言和Objective-C不同,Swift的赋值操作并不返回任何值。所以以下代码是错误的:

if x = y {
    //此句错误,因为x = y并不返回任何值
}

算术运算符

1 + 2  //等于3
5 - 3  //等于2
2 * 3  //等于6
10.0 / 2.5   //等于4.0

加法运算符也可用于String的拼接:

"hello, " + "world"  //等于 "hello, world"
求余运算符
9 % 4  //等于1
-9 % 4 //等于-1
浮点数求余计算
8 % 2.5   //等于0.5
自增和字减运算
var i = 0
++i //现在 i = 1
  • ++前置的时候,先自增再返回。
  • ++后置的时候,先返回再自增。
var a = 0
let b = ++a  //a 和 b 现在都是1
let c = a++  //a 现在是2,但 c 是 a 自增前的值1
一元负号运算符
let three = 3
let minusThree = -three //minusThree 等于 -3
let plusThree = -minusThree //plus等于3
一元正号运算符
let minusSix = -6
let alsoMinusSix = +minusSix //alsoMinusSix等于-6

组合赋值运算符

var a = 1
a += 2  //a现在是3

比较运算符

  • 等于 (a == b)
  • 不等于 (a != b)
  • 大于 (a > b)
  • 小于 (a < b)
  • 大于等于 (a >= b)
  • 小于等于 (a <= b)
    比较运算符多用于条件语句,如if条件:
let name = "world"
if name == "world" {
    println("hello, world")
} else {
    println("I'm sorry \(name), but I don't recognize you")
}
// 输出 "hello, world"

三目运算符

三目运算符是以下代码的缩写形式:

if question {
    answer1
} else {
    answer2
}

一个计算表格行高的例子:如果有表头,那行高应比内容高度高出50像素;如果没有表头,只需高出20像素。

let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
// rowHeight现在是90

空合并运算符

空合并运算符(a ?? b)将对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b
这个运算符有两个条件:

  • 表达式a必须是可选类型
  • 默认值b的类型必须要和a存储值得类型保持一致
    空合并运算符是对以下代码的简短表达方法:
a != nil ? a! : b

区间运算符

闭区间运算符

闭区间运算符(a...b)定义一个包含从a到b的所有值得区间,b必须大于a。闭区间运算符在迭代一个区间的所有值时非常有用。

for index in 1...5 {
    println("\(index) * 5 = \(index * 5)")
}
//1 * 5 = 5
//2 * 5 = 10
//3 * 5 = 15
//4 * 5 = 50
//5 * 5 = 25
半开区间运算符

半开区间(a..<b)定义一个从a到b但不包括b的区间。

let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..<count {
    println("第\(i + 1)个人叫\(names[i])")
}
//第1个人叫Anna
//第2个人叫Alex
//第3个人叫Brian
//第4个人叫Jack

逻辑运算符

逻辑运算的操作对象是逻辑布尔值。Swift支持三个标准逻辑运算。

  • 逻辑非(!a)
  • 逻辑与(a && b)
  • 逻辑或(a || b)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值