【问题标题】:Overloading Operators in SwiftSwift 中的重载运算符
【发布时间】:2015-01-23 15:29:05
【问题描述】:

我正在尝试在 Swift 中实现 Comparable 协议,但编译器不喜欢我任何重载

一行上的连续声明必须用';'分隔

它一直建议我在小于号后插入分号。感谢您对我做错的任何见解。

class SomeClass: NSObject, Equatable, Comparable{

    var number: UInt32!

    override init()
    {
        super.init()
        self.number = arc4random()
    }

    func == (lhs: SomeClass, rhs: SomeClass) -> Bool
    {
        return true
    }

    func < (lhs: SomeClass, rhs: SomeClass) -> Bool
    {
        return true
    }

}

【问题讨论】:

    标签: swift operator-overloading


    【解决方案1】:

    您会看到此错误,因为必须在类定义之外重载运算符,例如移动

    func == (lhs: SomeClass, rhs: SomeClass) -> Bool
    {
        return true
    }
    
    func < (lhs: SomeClass, rhs: SomeClass) -> Bool
    {
        return true
    }
    

    在你的类定义之外,它会起作用(除了他们没有通过这个实现返回正确的结果)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-01
      相关资源
      最近更新 更多