【发布时间】:2018-05-08 13:50:03
【问题描述】:
我想为我的结构重载运算符,但我收到消息“静态成员 'rating' 不能用于 'GlobalSettings' 类型的实例”。 我已经阅读了这个错误的几个答案,但那里的解决方案根本对我没有帮助。我该如何解决这个问题?
struct GlobalSettings{
static var rating = false
}
func ==(l: GlobalSettings, r: GlobalSettings) -> Bool {
if l.rating == r.rating {
return true
}else{
return false
}
}
【问题讨论】:
-
l和r没有rating变量。GlobalSettings会。 -
显而易见的解决方案是删除“静态”。 为什么你认为
rating应该是静态属性? -
顺便说一句,将函数体简化为
return l.rating == r.rating -
我使用 GlobalSettings 将所有设置保存在我的应用程序中,以便可以在任何地方访问它们。我相信静态变量对此有好处,但我是 Swift 新手,所以我不确定
-
那你为什么定义 == 来比较两个“全局设置”,如果没有那种类型的实例?
标签: swift compiler-errors