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