optional chaining class Student var dorm Dormitory class

  • Slides: 14
Download presentation

範例程式 // optional chaining class Student { var dorm: Dormitory? } class Dormitory {

範例程式 // optional chaining class Student { var dorm: Dormitory? } class Dormitory { var number. Of. Rooms = 2 } let peter = Student() let rooms = peter. dorm? . number. Of. Rooms print("Dormitory has (rooms) rooms")

輸出結果 Dormitory has nil rooms

輸出結果 Dormitory has nil rooms

14. 2 經由選項串連呼叫屬性、方法 n為了解釋選項串連起見,我們將程式再加以擴充。 n如下所示: class Student { var dorm: Dormitory? } class Dormitory

14. 2 經由選項串連呼叫屬性、方法 n為了解釋選項串連起見,我們將程式再加以擴充。 n如下所示: class Student { var dorm: Dormitory? } class Dormitory { var number. Of. Rooms: Int func print. Number. Of. Rooms() { print("The number of rooms is (number. Of. Rooms)") } init(number. Of. Rooms: Int) { self. number. Of. Rooms = number. Of. Rooms } var location: Location? } class Location { var dormitory. Name: String? var street: String? }

範例程式 class Student { var dorm: Dormitory? } class Dormitory { var number. Of.

範例程式 class Student { var dorm: Dormitory? } class Dormitory { var number. Of. Rooms: Int } func print. Number. Of. Rooms() { print("The number of rooms is (number. Of. Rooms)") } init(number. Of. Rooms: Int) { self. number. Of. Rooms = number. Of. Rooms } var location: Location? class Location { var dormitory. Name: String? var street: String? } let peter = Student() if let room. Number = peter. dorm? . number. Of. Rooms { print("Peter's dormitory has (room. Number) rooms") } else { print("Unabel to retrieve the number of rooms") }

輸出結果 Unabel to retrieve the number of rooms

輸出結果 Unabel to retrieve the number of rooms

範例程式 class Student { var dorm: Dormitory? } class Dormitory { var number. Of.

範例程式 class Student { var dorm: Dormitory? } class Dormitory { var number. Of. Rooms: Int } func print. Number. Of. Rooms() { print("The number of rooms is (number. Of. Rooms)") } init(number. Of. Rooms: Int) { self. number. Of. Rooms = number. Of. Rooms } var location: Location? class Location { var dormitory. Name: String? var street: String? } // call method let peter = Student() peter. dorm = Dormitory(number. Of. Rooms: 10) peter. dorm!. print. Number. Of. Rooms()

輸出結果 The number of rooms is 10

輸出結果 The number of rooms is 10

14. 3 多重的串連 n我們將Location類別定義一實例peter. Location,指定Location類別 實例peter. Location的屬性,最後將其指定給peter. dorm? . location。

14. 3 多重的串連 n我們將Location類別定義一實例peter. Location,指定Location類別 實例peter. Location的屬性,最後將其指定給peter. dorm? . location。

範例程式 class Student { var dorm: Dormitory? } class Dormitory { var number. Of.

範例程式 class Student { var dorm: Dormitory? } class Dormitory { var number. Of. Rooms: Int func print. Number. Of. Rooms() { print("The number of rooms is (number. Of. Rooms)") } init(number. Of. Rooms: Int) { self. number. Of. Rooms = number. Of. Rooms } var location: Location? } class Location { var dormitory. Name: String? var street: String? } // multiple chain let peter = Student() peter. dorm = Dormitory(number. Of. Rooms: 10) let peter. Location = Location() peter. Location. dormitory. Name = "Big. House Building" peter. Location. street = "Hsingchang 777" peter. dorm? . location = peter. Location print(peter. dorm? . location? . dormitory. Name) print(peter. dorm? . location? . street)

輸出結果 Optional(Big. House Building) Optional(Hsingchang 777)

輸出結果 Optional(Big. House Building) Optional(Hsingchang 777)