元组(purple)
let httpError = (404,"not found")
(anytype,antype)
元组内容可分解
let (statusCode,statusMessage) = httpError
print(httpError.statusCode)
print(httpError.statusMessage)
可选元组
let (justStatusCode, _ ) = httpError
print("(justStatusCode)")
下标访问
print(httpError.0)
print(httpError.1)
可选类型 (Optional)
var E1 : Int? = 404
//声明一个包含可选值Int 404
var E2 :String?
// E2 自动设置为nil
注意:OC中nil代表指向空地址,但是swift中nil代表缺失值,它是一个值value
可选绑定 (Optional bingding)
let constName = someOptional{ ... }
if let acutalNumber = Int(possibleNumber){
print(prossibleNumber actualNumber)
}else{
print(possibale)
}
这段代码理解为 如果Int(possibleNumber)返回的可选Int包含一个值,创建一个常量 actualNumber 并赋值给它
如果转换成功actualNumber可以在if语句第一个分支中使用。它已经被可选类型包含的值初始化过,所以不需要通过
强制解包 ! 后缀来获取它的值。在这个例子中 acutlaNumber 只被用来输出交换的结果
隐式解析可选类型
let S1 : String? = "An optional string"
let S2 : String = S1! //需要感叹号来强制解包
let S3 : String != "Another opitonal string"
let S4 : String = S3 //不需要感叹号来强解包。 这被称为隐式解析可选
基本运算符
- * = 来翻译翻译什么叫做 - * 来翻译翻译什么tm的叫基本运算符 什么tm的叫基本运算符 - *
一元
-a , !b a的负数,b不存在
二元操作符号
1 1 加号作用于两个值,称作二元
三目运算符
a : b ? c
组合赋值运算符
= -= *= = &= ..... 在基本操作符号后面增加等号= 就是复合了
swift 运算符特点
1. 恒等(===
)和不恒等(!==
)这两个比较符来判断两个对象是否引用同一个对象实例
2. 空合运算符 a ?? b
例子: a != nil ? a! : b
代码解释:当a不等于nil值时候,对a进行强制解包 !a ,当a等于nil的时候返回b
上面例子可以优化为:
let b = 1
var a : Int?
var c = a ?? b
区间运算符
闭区间包含两边极限 a...b -> [a,b]
半开区间 a..< b -> [a,b)
单侧区间 [2...] / [...2] -> [2, œ] / [-œ,2] 2到正无穷 / 负无穷到2
逻辑运算符
与&& 或|| 非 !