将结构实例调用到类中?(Swift)
我想在类中访问结构中的一个实例,这可能吗?结构不在类内 结构:将结构实例调用到类中?(Swift),swift,class,struct,Swift,Class,Struct,我想在类中访问结构中的一个实例,这可能吗?结构不在类内 结构: struct A { var x: String = "Text" } 类别: class B{ //is there a way to call var x here? } 你当然可以。但你的目的是什么 结构A{ 变量x:String=Text } B类{ A:A 初始输入:A{ self.structA=输入 } } 设b=b输入:A printb.structA.x 是的,这是可能的……但是。。。B
struct A {
var x: String = "Text"
}
类别:
class B{
//is there a way to call var x here?
}
你当然可以。但你的目的是什么 结构A{ 变量x:String=Text } B类{ A:A 初始输入:A{ self.structA=输入 } } 设b=b输入:A printb.structA.x
是的,这是可能的……但是。。。B需要知道A的情况。在这方面,结构与在其他语言中所做的没有什么不同 解决这个问题的一种方法是在B中引用a,就像这样 如果您想进一步证明您编写了一点代码,您可以将对a的引用作为参数传递给B的init,如下所示 这样,您就可以在不同的场景(例如,正常模式和测试)中自由地使用不同的变体。如果你听到人们谈论依赖注入,这基本上就是他们的意思 如果您想隐藏x的实现细节,即它属于A的事实,不让B的消费者知道,您可以将x作为B上的只读变量公开
我希望上面的内容可以让您开始学习:我只是在一个类中有一个函数,它需要来自存储在结构中的实例的数据才能正常工作。谢谢你的帮助!
class B {
let a: A = A()
// now you can get access to x like so: a.x
}
class B {
let a: A
init(a: A) {
self.a = a
}
// now you can get access to x like so: a.x
}
class B {
let a: A
init(a: A) {
self.a = a
}
var x: String {
a.x
}
}