關(guān)系運(yùn)算符:
Swift 的關(guān)系運(yùn)算符種類這幾種:>,<,>=,<=,==,!=,===,!==
其中:===判斷的是兩個值及數(shù)據(jù)類型都一樣
!==判斷的是兩個值及數(shù)據(jù)類型不一樣
使用其他關(guān)系運(yùn)算符時,若是變量比較,關(guān)系運(yùn)算符左右兩側(cè)的數(shù)據(jù)類型要一致
在swift中關(guān)系運(yùn)算符構(gòu)成的關(guān)系表達(dá)式結(jié)果類型為 true(真),false (假)
條件分支:
Swift繼承了C的條件分支,但是語法稍微不同,在swift里面,if后面的條件不需要括號括起來。
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)定義一個包含從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)條件的括號無需添加。
如下:
var price:Float = 3.5
while price < 5
{
print("漲價了")
price++
}
for var count = 0 ; count < 5 ; count++
{
print("循環(huán)計(jì)數(shù)")
}
repeat
{
print("又漲價了")
price++
}while price < 10
//閉區(qū)間
for index in 1...3
{
print(index)
}
集合-數(shù)組:
數(shù)組類型安全:數(shù)組在聲明之后總是知道自己能存放什么類型的數(shù)據(jù),所以在給數(shù)組元素賦值的時候要注意類型匹配
語法:
變量修飾符(var/let) 數(shù)組名:[數(shù)據(jù)類型]
數(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ù)組的添加:
//聲明時初始化
var age:[Int] = [10,30,4,2]
age.appendContentsOf(1...10) //追加一個序列
print(age)
數(shù)組元素的刪除:
name .removeFirst() //刪除第一個元素
name.removeLast() //刪除最后一個元素
name .removeAtIndex(2) //刪除下標(biāo)是2的元素
name.removeFirst(2) //從第一個開始刪除兩個元素
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這個元素
var ssq = "aaa"
let rst = name.contains { (s:String) -> Bool in
return ssq == s //判斷name是否包含ssq這個變量的內(nèi)容 rst的結(jié)果是ture(包含) flase(不包含)
}
集合-字典:
Swift的字典類型是Dictionary<KeyType, ValueType>,其中KeyType是字典中鍵的類型,ValueType是字典中值的類型。
對鍵類型KeyType的唯一限制是,它必須能夠提供一個方式讓自己被唯一表示出來。
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"]
//上面的可以簡化如下代碼:(在初始化的時候,字典的鍵值和值的數(shù)據(jù)類型就可以確定為:String,String),所以可以忽略
var dic1:Dictionary = ["name":"張三","address":"廈門市","age":"20"]
字典數(shù)據(jù)訪問:
//聲明,dic 可以賦值為空
var dic:Dictionary<String,String>?
//若聲明的時候沒加?,下面這條語句不合法
dic=nil
//遍歷數(shù)組,但在使用dic變量取值時要保證不是空的,所以要加!
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)把多個值組合成一個復(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)
常見錯誤:
關(guān)系運(yùn)算符的使用(注意===,及操作數(shù)的類型匹配)
條件分支的語法
Switch…case的條件可以是浮點(diǎn),沒有break貫穿
循環(huán)的語法注意,swift沒有do…while,用repeat…while表示
集合的值在做增刪改的時候注意是var,可變的。
注意變量是!號描述還是?描述