最近在學(xué)習(xí)Swift ,有一些自己的心得體會(huì)。今天從Swift基本運(yùn)算符談起,來(lái)談?wù)勎业膶W(xué)習(xí)心得,有興趣的同學(xué)我們一起學(xué)習(xí)一起進(jìn)步。
1.常量和變量
用let來(lái)聲明常量,用var來(lái)聲明變量。
let a = 10;
var b = 0;
可以理解為:聲明了一個(gè)名字為a的常量,并給它賦值為10;
聲明了一個(gè)名字為b的變量,并給它賦初始值為0;
可以在一行聲明多個(gè)常量或變量:
var x = 0.0, y = 0.0, z = 0.0
2.類型標(biāo)注
聲明常量或變量的時(shí)候可以加上類型標(biāo)注
var a : String
a = "hello"
聲明一個(gè)類型為String,名字為a的變量
給變量a賦值
可以定義多個(gè)同類型的變量
var a, b, c:Double
3.打印輸出
Swift 用字符串插值(string interpolation)的方式把常量名或者變量名當(dāng)做占位符加入到長(zhǎng)字符串中,Swift 會(huì)用當(dāng)前常量或變量的值替換這些占位符。將常量或變量名放入圓括號(hào)中,并在開括號(hào)前使用反斜杠將其轉(zhuǎn)義:
print("a 的值為\(a)")
4.注釋
//這是單行注釋
/*這是多
行注釋*/
5.類型轉(zhuǎn)換:Int轉(zhuǎn)Double
let three = 3
let p = 22.11
let w = Double(three) + p
6.布爾值
let a = true
let b = false
7.元組
let htt = (404,"not found")
http404Error 的類型是 (Int, String),值是 (404, "Not Found")
可以將元組分解
let (code,message) = htt
print("this code is \(code)")
print("this message is \(message)")
如果只需要一部分元組,分解是可以把不需要的忽略,用_標(biāo)記
let (code,_) = htt
可以用下標(biāo)來(lái)訪問(wèn)元組中的元素
print("this code is \(htt.0)")
print("this message is \(htt.1)")
給元素命名,然后通過(guò)名字來(lái)獲取這些元素的值:
let htt = (code:200,message:"ok")
print("this code is \(htt.code)")
print("this message is \(htt.message)")
8.可選類型
var a : Int? = 404 //a包含一個(gè)可選的Int
如果聲明一個(gè)可選的常量或變量但是沒(méi)有賦值,則默認(rèn)為nil
var a : String?
9.隱式解析可選類型
一個(gè)隱式解析可選類型其實(shí)就是一個(gè)普通的可選類型,但是可以被當(dāng)做非可選類型來(lái)使用,并不需要每次都使用解析來(lái)獲取可選值。下面的例子展示了可選類型String和隱式解析可選類型String之間的區(qū)別
let a : String? = "hahaha"
let b : String = a! //需要驚嘆號(hào)來(lái)獲取值
let a : String! = "hehehe"
let b : String = a //不需要驚嘆號(hào)來(lái)獲取值
注意
如果一個(gè)變量之后可能變成nil的話請(qǐng)不要使用隱式解析可選類型。如果你需要在變量的生命周期中判斷是否是nil的話,請(qǐng)使用普通可選類型。
10.錯(cuò)誤處理
func canThrowAnerror() throws{
//這個(gè)函數(shù)可能拋出錯(cuò)誤
}
一個(gè)函數(shù)可以通過(guò)在聲明中添加throws關(guān)鍵詞來(lái)拋出錯(cuò)誤消息。當(dāng)你的函數(shù)能拋出錯(cuò)誤消息時(shí), 你應(yīng)該在表達(dá)式中前置try關(guān)鍵詞。
do{
try canThrowAnerror() throws{
//沒(méi)有錯(cuò)誤拋出
}
//有錯(cuò)誤拋出
}
11.基本運(yùn)算符
· 賦值運(yùn)算符=
·
算術(shù)運(yùn)算符 +,-,*,/
加法運(yùn)算符也可用作String的拼接:"hello,"+"world"
·
·
求余運(yùn)算符 a % b
·
·
一元負(fù)號(hào)運(yùn)算符:
·
let three = -3 //three 等于 -3
let a = -three //a 等于 3 ,因?yàn)椤?-3”
·
·
一元正號(hào)運(yùn)算符:
·
let two = -2 //two 等于 -2
let a = +two //a 等于 -2
·
· 組合賦值運(yùn)算符: +=,-=
· 比較運(yùn)算符 ==,!=,>,<,>=,<=
12.三目運(yùn)算符:它的形式是:問(wèn)題 ? 答案一 : 答案二
let a = 10
let b = 12
let c = true
let d = a + (c ? a : b)
13.空合運(yùn)算符: a ?? b
對(duì)可選類型a進(jìn)行空判斷,如果a包含一個(gè)值就進(jìn)行解封,否則就返回一個(gè)默認(rèn)值b。
表達(dá)式 a 必須是 Optional 類型。默認(rèn)值 b 的類型必須要和 a 存儲(chǔ)值的類型保持一致。
a != nil ? a! : b //這是空合運(yùn)算符的復(fù)雜寫法
當(dāng)可選類型 a 的值不為空時(shí),進(jìn)行強(qiáng)制解封(a!),訪問(wèn) a 中的值;反之返回默認(rèn)值 b。
let c = "hehe"
var d : String?
let e = d ?? c
print(e) //打印出來(lái)為 "hehe"
14.區(qū)間運(yùn)算符
*閉區(qū)間運(yùn)算符 :a...b
包含a到b(包括a和b)
for index in 1...5{
print(index)
}
*半開區(qū)間運(yùn)算符:a..<b
包含a到b但不包括b
15.邏輯運(yùn)算符
· 非!a
· 與a && b
· 或a || b
原文來(lái)自:簡(jiǎn)書/我叫萬(wàn)萬(wàn)