關(guān)系運(yùn)算符:
Swift 的關(guān)系運(yùn)算符種類這幾種:>,<,>=,<=,==,!=,===,!==
其中:===判斷的是兩個(gè)值及數(shù)據(jù)類型都一樣
!==判斷的是兩個(gè)值及數(shù)據(jù)類型不一樣
使用其他關(guān)系運(yùn)算符時(shí)我磁,若是變量比較孽文,關(guān)系運(yùn)算符左右兩側(cè)的數(shù)據(jù)類型要一致
在swift中關(guān)系運(yùn)算符構(gòu)成的關(guān)系表達(dá)式結(jié)果類型為 true(真),false (假)
條件分支:
Swift繼承了C的條件分支夺艰,但是語法稍微不同芋哭,在swift里面,if后面的條件不需要括號(hào)括起來郁副。
var num:Int = 1
if num > 0
{
print("num是正數(shù)楷掉!")
}
var price:Float = 3.5
switch price
{
case 3.5: print("1.0”)
case 2.0:print("2.0")
default :print("其他")
}
區(qū)間運(yùn)算符:
閉區(qū)間運(yùn)算符:閉區(qū)間運(yùn)算符(a...b)定義一個(gè)包含從a到b(包括a和b)的所有值的區(qū)間。
循環(huán)結(jié)構(gòu):
Swift中循環(huán)有四種:
while ,for ,repeat…while ,for…in
這四種與之前學(xué)的功能一致霞势,只是語法稍有不同烹植。
前兩種循環(huán)在swift里面循環(huán)條件的括號(hào)無需添加。
如下:
var price:Float = 3.5
while price < 5
{
print("漲價(jià)了")
price++
}
for var count = 0 ; count < 5 ; count++
{
print("循環(huán)計(jì)數(shù)")
}
repeat
{
print("又漲價(jià)了")
price++
}while price < 10
//閉區(qū)間
for index in 1...3
{
print(index)
}
集合-數(shù)組:
數(shù)組類型安全:數(shù)組在聲明之后總是知道自己能存放什么類型的數(shù)據(jù)愕贡,所以在給數(shù)組元素賦值的時(shí)候要注意類型匹配
語法:
變量修飾符(var/let) 數(shù)組名:[數(shù)據(jù)類型]
數(shù)組可以在聲明時(shí)初始化草雕,也可以之后初始化
//聲明時(shí)初始化
var age:[Int] = [10,30,4,2]
//聲明
var name:[String]
//聲明之后初始化
name = ["張三","李思","王武"]
數(shù)組元素的訪問:
for var i = 0 ; i < name.count ; i++
{
print(name[i])//下標(biāo)法
}
for index in name
{//不需要定義,直接寫參數(shù)名即可
print(index)
}
for (index,value) in name.enumerate()
{//使用枚舉器固以,獲取下標(biāo)和值
print(index,value)
}
數(shù)組有下標(biāo)越界檢查墩虹,注意下標(biāo)越界引起崩潰
同樣(var)修飾的數(shù)組可進(jìn)行添加,修改憨琳,刪除诫钓,(let)則是只讀
數(shù)組值的修改:
name[0] = “雷神” //修改元素值
name[1...2] = [“張笑笑”,“林巖巖”]//指定區(qū)間修改
//指定范圍修改(0~1下標(biāo)替換)
name.replaceRange(0...1, with: ["呀呀","jaja"])
name[0..<2] = ["問問","QQ"] //指定區(qū)間修改
print(name[0...1]) //指定區(qū)間打印元素(0,1下標(biāo))
數(shù)組的添加:
//聲明時(shí)初始化
var age:[Int] = [10,30,4,2]
age.appendContentsOf(1...10) //追加一個(gè)序列
print(age)
數(shù)組元素的刪除:
name .removeFirst() //刪除第一個(gè)元素
name.removeLast() //刪除最后一個(gè)元素
name .removeAtIndex(2) //刪除下標(biāo)是2的元素
name.removeFirst(2) //從第一個(gè)開始刪除兩個(gè)元素
name.removeAll()//刪除所有
name.removeAll(keepCapacity: false)//刪除所有元素且不保留原來空間
name.removeRange(1...2) //刪除1~2下標(biāo)的元素篙螟,baokuo 1菌湃,2
數(shù)組內(nèi)容的相關(guān)判斷:
print(name.isEmpty) //判斷數(shù)組是否為空
print(name.contains("QQ"))//數(shù)組包含QQ這個(gè)元素
var ssq = "aaa"
let rst = name.contains { (s:String) -> Bool in
return ssq == s //判斷name是否包含ssq這個(gè)變量的內(nèi)容 rst的結(jié)果是ture(包含) flase(不包含)
}
集合-字典:
Swift的字典類型是Dictionary<KeyType, ValueType>,其中KeyType是字典中鍵的類型遍略,ValueType是字典中值的類型惧所。
對(duì)鍵類型KeyType的唯一限制是骤坐,它必須能夠提供一個(gè)方式讓自己被唯一表示出來。
Swift的所有基礎(chǔ)類型(例如String下愈、Int纽绍、Double和Bool)這些類型都能夠用作字典中的鍵。枚舉成員中沒有綁定值的值默認(rèn)也是可以作為鍵值势似。
字典的聲明語法:
Var 字典變量名: Dictionary<鍵的數(shù)據(jù)類型, 值的數(shù)據(jù)類型>
字典的聲明及初始化示例 :
//聲明空字典
var dict = Dictionary<Int,String>()
//賦值
dict[1] = "qq" //鍵是整型
print(dict[1]!)
//空字典
var dict1:Dictionary<Int,String> = [:]
//聲明
var dic:Dictionary<String,String>
//賦值
dic = ["name":"張三","address":"廈門市","age":"20"]
//上面的可以簡(jiǎn)化如下代碼:(在初始化的時(shí)候拌夏,字典的鍵值和值的數(shù)據(jù)類型就可以確定為:String,String),所以可以忽略
var dic1:Dictionary = ["name":"張三","address":"廈門市","age":"20"]
字典數(shù)據(jù)訪問:
//聲明,dic 可以賦值為空
var dic:Dictionary<String,String>?
//若聲明的時(shí)候沒加?,下面這條語句不合法
dic=nil
//遍歷數(shù)組,但在使用dic變量取值時(shí)要保證不是空的,所以要加!
for (key,value) in dic!
{
print(key,value)
}
字典數(shù)據(jù)添加、修改履因、刪除:
//添加
dic1["score"] = "100 ?
//根據(jù)鍵值修改
dic1["name"] = "求求”
//根據(jù)鍵值修改
dic1.updateValue("99", forKey: "score")
//根據(jù)鍵刪除
dic1.removeValueForKey("name")
//全部刪除
dic1.removeAll()
//true:保留內(nèi)存障簿,默認(rèn)為false
dic1.removeAll(keepCapacity: true)
容器 - 元組:
元組(tuples)把多個(gè)值組合成一個(gè)復(fù)合值。元組內(nèi)的值可以使任意類型,并不要求是相 同類型搓逾。
//聲明(:加類型可以省略)
var stu:(stuId:Int,stuName:String) = (stuId:200,stuName:"張三")
print(stu.stuId)//key取值
print(stu.1)//下標(biāo)取值
//內(nèi)容分解
var (sId,sName) = stu
print(sId,sName)
常見錯(cuò)誤:
關(guān)系運(yùn)算符的使用(注意===卷谈,及操作數(shù)的類型匹配)
條件分支的語法
Switch…case的條件可以是浮點(diǎn)杯拐,沒有break貫穿
循環(huán)的語法注意霞篡,swift沒有do…while,用repeat…while表示
集合的值在做增刪改的時(shí)候注意是var端逼,可變的朗兵。
注意變量是!號(hào)描述還是?描述