Swift

可選類型

定義一個(gè)可選類型變量

var name:String?
var name1: Optional<String>

當(dāng)你聲明一個(gè)可選變量或者可選屬性的時(shí)候沒(méi)有提供初始值, 它的值默認(rèn)為 nil
訪問(wèn)可選類型包含的值的時(shí)候需要解包,

var name:String?
name = "jake";
let value = name!

當(dāng)可選類型包含的值為nil的時(shí)候,強(qiáng)制解包會(huì)運(yùn)行時(shí)錯(cuò)誤,需要判斷

if name != nil {
    let value = name!
}

可選類型類似于Object-C中指針的nil值,但是nil只對(duì)類有用,而可選類型對(duì)所有的值都可用,并且更安全

自動(dòng)解析

  • 聲明可選類型的時(shí)候使用!替換?, 這樣可選變量在使用時(shí)就不需要加一個(gè)!來(lái)獲取值,它會(huì)自動(dòng)解析
var name:String!
name = nil
if name != nil {
    let value = name
}

可選綁定

var name:String?
name = "jake"
if let newName = name {
    let value = newName
}

數(shù)組

定義一個(gè)數(shù)組

var numbers:[Int] = [1, 1, 2]
var names:[String] = ["jake", "jim"]

訪問(wèn)數(shù)組中元素

names[0]
numbers[1]

遍歷數(shù)組

  • 方式1 不需要index
for name in names {
    print(name)
}
  • 需要index的遍歷
for(index, item) in names.enumerated(){
    print("在 index=\(index) 位置上的值為\(item)")
}

合并數(shù)組

var intsA:[Int] = [1, 2, 3, 4, 5]
var intsB:[Int] = [6, 7, 8, 9, 10]
var intsC = intsA + intsB;

結(jié)果為: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

判斷數(shù)組是否為空 可以通過(guò)只讀元素isEmpty, 返回Bool結(jié)果判斷

let b = intsA.isEmpty

字典

定義一個(gè)字典

var person:[String: String] = ["name": "jake", "age": "12", "height": "1.89"]

// 可以存放基本數(shù)據(jù)類型
var person2:[String: AnyObject] = ["name": "jake" as AnyObject, "age": 12 as AnyObject, "height": 1.79 as AnyObject];

通過(guò)指定的key訪問(wèn)

person["name"]

移除鍵值對(duì)

// 移除所有鍵值對(duì)
person.removeAll()

// 移除某個(gè)key對(duì)應(yīng)的鍵值對(duì)
person2.removeValue(forKey: "name")

// 通過(guò)設(shè)置指定key對(duì)應(yīng)的value為nil來(lái)移除鍵值對(duì)
person2["name"] = nil

// 遍歷字典

var person:[String: String] = ["name": "jake", "age": "12", "height": "1.89"]
// 遍歷字典
for (key, value) in person{
    print("字典key \(key)-字典value \(value)")
}

結(jié)果為:
  字典key name-字典value jake
  字典key age-字典value 12
  字典key height-字典value 1.89
  • 使用enumerate()方法進(jìn)行遍歷 返回字典的索引及(key, value)
var person:[String: String] = ["name": "jake", "age": "12", "height": "1.89"]

for(index, value) in person.enumerated(){
    print("字典索引index \(index)-字典value \(value)")
}

常用字典屬性

var person:[String: String] = ["name": "jake", "age": "12", "height": "1.89"]

let dictKeys = person.keys
print(dictKeys)

let dictValus = person.values
print(dictValus)

// 鍵值對(duì)個(gè)數(shù)
person.count
// 判斷字典是否為空
person.isEmpty
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 53.計(jì)算字符 在字符串中獲取字符值的數(shù)量, 可以使用字符串字符屬性中的計(jì)數(shù)屬性: let unusualMena...
    無(wú)灃閱讀 1,269評(píng)論 0 4
  • 基礎(chǔ)部分(The Basics) 當(dāng)推斷浮點(diǎn)數(shù)的類型時(shí),Swift 總是會(huì)選擇Double而不是Float。 結(jié)合...
    gamper閱讀 1,496評(píng)論 0 7
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語(yǔ)閱讀 4,104評(píng)論 0 6
  • 1、范型范型所解決的問(wèn)題 函數(shù)、方法、類型:類,結(jié)構(gòu)體,枚舉,元組類型,協(xié)議參數(shù),返回值,成員函數(shù)參數(shù),成員屬性類...
    我是小胡胡123閱讀 943評(píng)論 0 1
  • 初見(jiàn)swift 打印‘hello world' print("hello world"); 教程 類型 基礎(chǔ)類型:...
    PanPan1127閱讀 881評(píng)論 0 2

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