ios - Swift 平等协议(protocol)

标签 ios swift xcode6

我正在学习 Swift 教程:https://www.raywenderlich.com/125311/make-game-like-candy-crush-spritekit-swift-part-1并遇到了这段代码:

func == (lhs: Cookie, rhs: Cookie) -> Bool {
    return lhs.column == rhs.column && lhs.row == rhs.row
}

我正是这么写的,但是 Xcode 给我这些错误:

Consecutive declarations on a line must be separated by ';'
Expected declaration operators are only allowed at global scope

我从苹果文档中找到这段代码:https://developer.apple.com/documentation/swift/equatable

这和我写的非常相似。怎么了?这对我来说似乎是一个错误。我正在使用 Xcode 6 Beta 2

编辑:

这是我的整个 Cookie 类:

class Cookie: Printable, Hashable {
    var column: Int
    var row: Int
    let cookieType: CookieType
    let sprite: SKSpriteNode?
    
    init(column: Int, row: Int, cookieType: CookieType) {
        self.column = column
        self.row = row
        self.cookieType = cookieType
    }
    
    var description: String {
        return "type:\(cookieType) square:(\(column),\(row))"
    }
    
    var hashValue: Int {
        return row * 10 + column
    }
    
    func ==(lhs: Cookie, rhs: Cookie) -> Bool {
        return lhs.column == rhs.column && lhs.row == rhs.row
    }
}

最佳答案

移动这个函数

func == (lhs: Cookie, rhs: Cookie) -> Bool {
    return lhs.column == rhs.column && lhs.row == rhs.row
}

在 cookie 类之外。这种方式很有意义,因为当它用于两个 Cookie 时,它​​会在全局范围内覆盖 == 运算符。

关于ios - Swift 平等协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24467960/

相关文章:

swift - 如何在方法之间传递潜在错误

swift - 从字符串中过滤非数字

ios - 如何减少此流代码中的能量影响

ios - 重新排序 UIImage 数组中的元素

objective-c - 想要从 URL 而不是响应中拆分 JSON

swift - 我可以在 C 枚举上使用 NS_SWIFT_NAME 或 NS_REFINED_FOR_SWIFT 将全局函数映射到 Swift 属性吗?

ios - 应用程序未验证,因为 CFBundleIcons 下没有路径,但 CFBundleIcons 不在 plist 中

ios - 应用程序终止时发送 HTTP POST

macos - 为什么窗口背景在全屏时保持黑色?

ios - 如何在 iOS 的 Collection View 中为内容偏移设置动画?