我想在变量中添加随机Int数。我尝试了var playerCard = "card" + String(a)
和var playerCard = "card(a)"
,但得到了相同的错误。顺便说一句,我只是一个学习基础知识的初学者。
每个解决方案都将被关联<3
@State var a = Int.random(in: 1...10)
@State var playerCard = "card" + String(a)
不能在属性声明中直接包含可执行代码,如"card" + String(a)
。。。除非使用计算属性。
所以,你可以用这样的东西来代替@State var playerCard = "card" + String(a)
:
var playerCard: String { /// this is a computed property!
"card" + String(a)
}
要添加为什么需要计算属性的一些解释:
在Swift中,除非编译器需要,否则在访问属性时不必使用self
。使用self
完整地写出声明
@State var a = Int.random(in: 1...10)
@State var playerCard = "card" + String(self.a)
问题是self.a
中的self
还不存在。在初始化所有对象属性之前,您无法访问self,由于playerCard
是一个属性,因此无法初始化,因此无法对对象进行初始化。