Swift 基礎(chǔ)語法二

一 數(shù)組

數(shù)組是一堆有序的由相同類型元素構(gòu)成的集合類型

定義

let stuArray : Array<String> = ["zhangsan","18"]

獲取長度

array.count

判空

array.isEmpty

取值

array[1]

array[0...2]

array[0..<2]

array[..2]

array[2..]

array.first

array.last

array.prefix(2)

array.suffix(2)

添加數(shù)據(jù)

array.append("zhouliu")

插入數(shù)據(jù)

array.insert("haojian",at:0)

修改數(shù)據(jù)

array[0] = "wangqi"

刪除數(shù)據(jù)

remove 會改變原數(shù)組的值,返回被刪除的那個元素

drop 不會改變原數(shù)組的值,返回刪除元素后的新數(shù)組

array.remove(at:0)
array.removeFirst()
array.removeLast()
array.removeAll

array.dropFirst()
array.dropLast()

是否包含

array.contains("zhangsan")

倒序

array.reverse

索引

var students = ["zhangsan","Lisi","Wangwu","zhangsan"]

students.firstIndex(of :"zhangsan")
students.lastIndex(of :"zhangsan")

合并

var array = ["zhangsan" , "lisi","wangwu"]
var array1 = ["zhaoliu","wangqi"]

var array2 = array + array1

遍歷

var array = ["zhangsan" , "lisi" , "wangwu"]

for i in 0..< array.count
print(array[i])
}

for item in array {
print(item)

}

for item in array[0..<2]
{
print(item)
}

for (index,name) in array.enumerated() {
print(index)
print(name)
}

var array = ["zhangsan","lisi","wangwu"]

var i = array.makeIterator()

i.next()
i.next()
i.next()

二 集合

與數(shù)組的概念差不多,主要區(qū)別:
元素無序
元素不能重復

let stuSet:Set<String> = ["zhangsan","18"]

數(shù)組轉(zhuǎn)集合

let stuArray = ["zhangsan","18"]

let stuSet = Set(stuArray)

定義空集合

let set: Set<String> = Set()

let set: Set<String> = []

獲取長度

set.count

判空

set.isEmpty

取值

set.first

Set(set.prefix(2))

Set(set.suffix(2))

插入數(shù)據(jù)

set.insert("man")

三 字典

字典是由鍵值對 key:value 對組合的集合類型
字典中的元素之間是無序的

var dict1: Dictionary<String,String> = ["name":"zhangsan","age":"18"]

var dict1: [String : String] = [:]

獲取長度

dict.count

判空

dict.isEmpty

查詢數(shù)據(jù)

dict["name"]

修改數(shù)據(jù)

dict["name"] = "lisi"

刪除數(shù)據(jù)

dict.removeValue(forKey : "height")

合并

var dict1:[String:String] = ["name":"zhangsan","age":"20"]

var dict2:[String:String] = ["height":"1.8","phoneNum":"188888"]

for (key,value) in dict2 {
dict1[key] = value
}

print dict1

遍歷

var dict:[String:String] = ["name" : "zhangsan","age":"18"]

for value in dict.values{
print (value)
}

var dict :[String:String] = ["name":"zhangsan","age":"18"]

for key in dict.keys{
print(key)
}

var dict: [String:String] = ["name":"zhangsan","age":"18"]

for (key,value) in dict{
print("(key) - (value)")

}

枚舉方式遍歷

var dict :[String:String] = ["name":"zhangsan","age":"18"]

for (index,value) in dict.enumerated() {
print("(index) - (value)")
}

迭代器

var dict:[String : String] = ["name":"zhangsan","age":"18"]

var d = dict.makeIterator()

a.next()

a.next()?.value

四 函數(shù)

函數(shù)是由一組語句構(gòu)成的代碼塊,用于完成某個特定的功能呢。

定義與調(diào)用

訪問修飾符 func 函數(shù)名(形式參數(shù)列表) -> 返回值類型 {
代碼塊
return 返回值
}

標簽與名稱

每個函數(shù)的形式參數(shù) 都包含 形式參數(shù)標簽 和形式參數(shù)名稱

可變參數(shù)

for total(numbers: Int...) -> Int{
var sum = 0
for i in numbers{
sum += i
}
return sum

}

total ()

total (numbers : 10)

輸入輸出參數(shù)

func swapInt(a:inout Int ,b: inout Int){
let temp = a
a = b
b = temp
}

var a = 10

var b = 20

SwapInt (a:&a , b:&b)

五 閉包

定義像函數(shù),單沒有名字
調(diào)用類似函數(shù),也需要傳參數(shù)
通過查看類型會發(fā)現(xiàn)就是前面講的函數(shù)類型
閉包是一種特殊的沒有名字的函數(shù)

let squareClosure = { (param : Int) -> Int in
return param*param

}

squareClosure(3)

{ (parameters) -> return type in

statements

}

01 來順序調(diào)用閉包的參數(shù)

省略 -> 返回類型

省略 參數(shù)類型和括號

省略 一條執(zhí)行語句時 ,return 關(guān)鍵字省略

參數(shù)名稱縮寫 改為 0+1

捕獲

var vehicle = "car"
var animal = "Cat"

let closure = { [vehicle] in

print ("Viehichle is (vechicle)")

print ("Animale is (animal)")

}

vehicle = "Airplane"

animale = "Dog"

closure ()

捕獲列表中的 vehicle 是 car 是拷貝類型

animal 是引用類型 ,是 Dog

尾隨閉包

閉包是函數(shù)的最后一個參數(shù)

逃逸閉包

閉包在函數(shù)執(zhí)行完之后再調(diào)用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容