//: playground - noun: a place where people can play
import cocoa
varstr1 =
"供選鏈結和強制拆包的不同。"
class person
class residence
subscript
(i:
int) ->
room
func printnumberofrooms()
var address: address?
}//假設你建立乙個新的person 例項,它的residence 屬性因為是被定義為供選的,此屬性將預設初始化為空:
//let john = person()
/*假設你想使用宣告符!強制拆包獲得這個人residence 屬性numberofrooms 屬性值,將會引發執行時錯誤,由於這時沒有能夠供拆包的residence 值。
*///let roomcount = john.residence!.numberofrooms
//供選鏈結提供了一種還有一種獲得numberofrooms 的方法。利用供選鏈結,使用問號來取代原來!的位置:
//let roomcount = john.residence?
.numberofrooms
/*if let roomcount = john.residence?.numberofrooms else
john.residence = residence()
if let roomcount = john.residence?
.numberofrooms else */
/*為供選鏈結定義模型類
這些類是由上面的 person 和 residence 模型通過加入乙個 room 和乙個 address 類拓展來。
*/class room
}class address else
if (buildingnubmer != nil) else }}
//通過供選鏈結呼叫屬性
let john = person()
iflet
roomcount = john.residence?.numberofrooms else
//通過供選鏈結呼叫方法
var uu = 9
if(john
.residence
?.printnumberofrooms() !=
nil) else
//使用供選鏈結呼叫角標
iflet firstroomname = john.residence?[0].name else
Option可選值(一)
playground noun a place where people can play import cocoa class person class residence subscript i int room func printnumberofrooms var address addre...
Optional Values可選值簡述
var str string 乙個基礎型別在沒有初始值的時候是不能使用的,而optional value在未經初始化的時候值為nil,nil代表值缺失。varstr string hello vars string str 錯誤,不能將可選量 str直接賦值給 svar s string str 正...
5 3 2 使用可選值
5.3.2 使用可選值 到目前為止,我們已經看到如何宣告差別聯合型別,以及如何使用識別器建立值。現在,我們將學習如何編寫 讀取值。看過之後f 示例之後,我們將在 c 中實現相同的 使用我們前面提到過的 tag 屬性的表示形式。在 f 中匹配差別聯合 當使用差別聯合時,我們總是要為所有可能的選項編寫 ...