我有一个很简单的struct
按预期工作:
struct Obligation {
var date = Date()
}
let snapshotEntry = Obligation(date: Date())
但是,如果我向这个结构添加一个私有(private)变量,我会在我创建我的结构的一个实例的行上得到一个编译错误,说 Argument passed to call that takes no arguments
:struct Obligation {
var date = Date()
private var blank:Bool = false
}
let snapshotEntry = Obligation(date: Date())
如果我删除
private
来自新 blank
var 它编译得很好。我在这里忽略了一些简单的事情吗?可以一个
struct
没有私有(private)变量?
最佳答案
作为Access Control文件明确指出:
The default memberwise initializer for a structure type is considered private if any of the structure’s stored properties are private. Likewise, if any of the structure’s stored properties are file private, the initializer is file private. Otherwise, the initializer has an access level of internal.
只需使用自定义初始化程序。
关于声明私有(private) var 时出现 Swift 结构编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63645914/