I want CurrendData.location
一次获取其随机值CurrentData
被初始化。我想出了以下代码:
struct CurrentData {
var size: (x: Int, y: Int)
var location: (x: Int, y: Int)
init(size: (x: Int, y: Int)) {
self.size = size
self.location = (getRandom(size.x), getRandom(size.y)) //error
}
private func getRandom (_ value:Int) -> Int {
return Int.random(in: 0...value-1)
}
}
但我收到此错误:“在初始化所有存储的属性之前使用‘self’”。如何解决?
getRandom
是一个实例方法,所以它被调用self
(但是,Swift 允许你省略self
当访问实例方法/属性时)。
如果您希望能够从以下位置调用函数init
,您需要将其声明为static
方法而不是实例方法。然后,您可以通过写出类型名称来调用静态方法(CurrentData
)或简单地使用Self
.
struct CurrentData {
var size: (x: Int, y: Int)
var location: (x: Int, y: Int)
init(size: (x: Int, y: Int)) {
self.size = size
self.location = (Self.getRandom(size.x), Self.getRandom(size.y))
}
private static func getRandom (_ value:Int) -> Int {
Int.random(in: 0...value-1)
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)