Option可選值可選值(二)

2021-09-07 13:19:00 字數 1331 閱讀 4328

//: 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 中匹配差別聯合 當使用差別聯合時,我們總是要為所有可能的選項編寫 ...