2016-06-10 41 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。您能否提一下任何链接以了解我的问题的基本知识? –

相关问题