当前位置: 首页 > 面试题库 >

快速平等协议

司马彬
2023-03-14
问题内容

我正在为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上使用时,它会在全局范围内覆盖==运算符



 类似资料:
  • 问题内容: 我需要使一个类符合Swift中的协议,以实现委托。我该怎么办? 问题答案: 但是请注意,某些协议 要求 您实现委托方法。例如, 要求 您实施 和 如果那些不是由符合协议的类实现的,则Xcode会给您一个编译错误(始终检查协议声明,Cmd + Click将向您显示 必须 实现的方法)。

  • 问题内容: 我有一个符合多种协议的Objective-C变量。 我将如何在Swift中代表这种类型? 问题答案: 这应该工作: 注意,必须快速使用NSObjectProtocol而不是NSObject。 以下是一些其他示例: 符合多种协议的对象数组: 具有符合多种协议的参数的功能: 对于3.1之前的Swift版本,请使用:

  • 问题 你想快速计算某数的平方根倒数。 解决方案 在 Quake Ⅲ Arena 的源代码中,这个奇怪的算法对一个幻数进行整数运算,来计算平方根倒数的浮点近似值。 在 CoffeeScript 中,他使用经典原始的变量,以及由 Chris Lomont 发现的新的最优 32 位幻数。除此之外,还使用 64 位大小的幻数。 另一特征是可以通过控制牛顿迭代法的迭代次数来改变其精确度。 相比于传统的,该算

  • 移动互联快速开发平台 采用Mongodb为底层数据库:数据设计随需而变; 采用Mongodb集群,支撑大数据量,大并发实时查询,便于扩展; 采用SpringMongodb简化开发,简单得令人发指; 采用SpringRest提供JSON的输出,支持各种转换; 提供程序整合、兼容中文、跨域JSONP的支持; 进行了大数据量的压力测试,参数的最优配置; 各种最佳实践。 HTML5 快速开发的前端架构,专

  • 问题内容: 在Objective-C中,我使用以下代码删除所有子视图: 但是如何迅速使用它呢?我看到苹果文档迅速使用了该方法 但是当我尝试它时,出现错误: 有什么方法可以快速删除子视图? 问题答案: 已针对Swift 2.0(Xcode 7)更新 用途: 或像这样:

  • 问题内容: 以下代码使快速(3,3.1,4)编译器崩溃: 我可能天真地希望编译器将其推断为具有签名的Function Type ,之后,我可以这样称呼它: 我想我的问题是:显然,编译器应该执行除崩溃以外的其他操作,但是Swift目前应该支持这种语法吗? 问题答案: 如您所说,编译器永远不会崩溃;这确实是一个错误,已在此处提交。Swift团队成员Slava Pestov在其中说: 我们计划使MyPr