2016-06-10 74 views
1

多點標記我有以下SWIFT代碼:爲什麼我們使用SWIFT

import UIKit 

struct Foo{ 
    let bar = Bar() 
} 

struct Bar { 
    let bas = Bas() 
} 

struct Bas { 
    func sayHello(){ 
     print("hello") 
    } 
} 

let foo = Foo() 
foo.bar.bas.sayHello() 

什麼是聲明一個類的對象到另一個類即爲什麼要使用foo.bar.bas.sayHello()在那裏我可以簡單地寫bas.sayHello()點?

+1

'foo.bar.bas'和'bas'是Bas' –

+0

的'兩個不同的實例,你使用'Objective-C的多個方括號中這是相同的''[[[foo bar] bas] sayHello];'。用於調用更多變量/函數。 – TheTiger

+0

爲什麼我不直接創建'Bas'的對象並直接調用它的方法? –

回答

0

foo.bar.basbasBas的兩個不同實例。有了小的修改,這是更容易觀察:

struct Foo{ 
    let bar = Bar() 
} 

struct Bar { 
    let bas = Bas(name: "Jeremy") 
} 

struct Bas { 
    let name: String 
    func sayHello(){ 
     print("hello \(name)") 
    } 
} 

let foo = Foo() 
foo.bar.bas.sayHello() // hello Jeremy 

let bas = Bas(name: "Agatha") 
bas.sayHello() // hello Agatha 
+0

將一個結構的對象聲明爲另一個結構的優點是什麼? –

+0

你有一個對象圖...像'user.profileInformation.firstName'來獲取用戶的名字。這可以讓你組織信息。 –

+0

謝謝@Aaron Brager。您能否提一下任何鏈接以瞭解我的問題的基本知識? –

相關問題