【发布时间】:2016-10-10 22:13:07
【问题描述】:
我有以下快速代码:
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()?
【问题讨论】:
-
foo.bar.bas和bas是Bas的两个不同实例 -
这与您在
Objective-C[[[foo bar] bas] sayHello];中使用多个方括号相同。用于调用更多变量/函数。 -
我为什么不简单地创建
Bas的对象并直接调用它的方法呢? -
如果你创建了一个
A类,然后在其中声明一个B类实例,然后将Bas类实例声明到B类中,因此两者都不同,你称之为Bas's通过创建其新实例或B的Bas实例来发挥作用。如果您可以直接从Bas调用sayHello(),那么您将其称为foo.bar.bas.sayHello()是您的错误 -
如果您不遵循模型,则没有任何优势。但是如果你有一个像
Student ---> Profile ---> Roll No., Name, Father Name, Class这样的模型,那么就很容易理解代码实际上做了什么并且看起来不错。