1、swift入門學習筆記(第一版),對swift的基礎知識點進行梳理總結。知識點一直在變,只是作為參考,以蘋果官方文件為準~
2、在學習完基本的知識點以後會結合官方文件及相關資料,在此版本的基礎上進行新增更改。
1.1、可選型別使用時需要解包,解包時需要判斷是否為nil
,常用if
語句判斷,再去訪問其屬性或方法,否則會執行錯誤。當可選型別訪問其屬性還是可選時,即多層可選,那麼if就顯得比較麻煩。swift
提供了可選鏈(可空鏈式呼叫)
1.2、可空鏈式呼叫:一種可以請求和呼叫屬性、方法和下標的過程,請求和呼叫目標可能為空。不為空調用成功,為空返回空(nil
)。多個連續呼叫鏈結在一起,有任意乙個結點為空(nil
)將導致整個鏈呼叫失敗。
b、可選鏈訪問int?
值,你該不會變的更可空(仍然是可空)
通過拆分官方文件來說明:
class
person
class
residence
class
address else
if buildingnumber != nil else
}}
let zane = person()
iflet number = zane.residence?.address?.buildingnumber else
output:
unable to
getthe buildingnumber
可選鏈任意乙個屬性為空則返回nil
2.1、設定屬性值
let myresidence = residence()
zane.residence = myresidence
let someaddress = address()
someaddress.buildingnumber = "218"
zane.residence?.address = someaddress
if let number = zane.residence?.address?.buildingnumber else
output:
output:
the buildingnumber of zane's residence is
218
2.2、訪問函式
通過可空鏈來呼叫address
的buildingidentifier()
方法,返回的是string?
型別,因此列印的是可選型別
print(zane.residence?.address?.buildingidentifier())
output:
optional("218")
if let buildingidentifier = zane.residence?.address?.buildingidentifier()
output:
zane's building identifier is
218
class
person
class
residence
subscript(i:int) -> room
set
}func printnumberofrooms()
}
有乙個儲存room類的陣列,及房間數屬性
通過下標讀寫陣列元素
let name:string
init(name:string) }
3.1、可選鏈呼叫方法
let zane = person()
if zane.residence?.printnumberofrooms() != nil else
output:
unable to print the
number
of rooms
3.2、可選鏈訪問下標
訪問下標時,問號放在方括號前面
訪問zane.residence
中rooms
陣列中第乙個房間名稱
if
let firstroomname = zane.residence?.rooms[0].name else
output:
getthe
first room name
定義屬性
let myresidence = residence()
zane.residence = myresidence
if let firstroomname = zane.residence?.rooms[0].name else
if zane.residence?.printnumberofrooms() != nil else
output:
is living room.
the number
of rooms is
2it was possible to print the
number
of rooms
Swift 可選鏈 備
在swift程式表示式中會看到問號 和感嘆號 它們代表什麼含義呢?這些符號都與可選型別和可選鏈相關,下面來看看可選鏈。可選鏈 類圖 它們之間是典型的關聯關係類圖。這些類一般都是實體類,實體類是系統中的人 事 物。employee通過dept屬性與department關聯,department通過co...
學習Swift 可選鏈
可空鏈式呼叫是一種可以請求和呼叫屬性 方法及下標的過程,它的可空性體現於請求或呼叫的目標當前可能為空 nil 如果可空的目標有值,那麼呼叫就會成功 如果選擇的目標為空 nil 那麼這種呼叫將返回空 nil 多個連續的呼叫可以被鏈結在一起形成乙個呼叫鏈,如果其中任何乙個節點為空 nil 將導致整個鏈呼...
swift 筆記 十六 可選鏈
可選鏈 optional chaining 我們都知道 可選型 是什麼,那麼可選鏈又是什麼,舉個例子解釋一下 struct myname struct myinfo class myclass 這裡有兩個結構體和乙個類,當,這個類例項化的時候 var myinstance myclass 所有的可選...