Wal*_*GE1 2 operator-overloading swift
我正在尝试在Swift中实现Comparable协议,但编译器不喜欢我尝试重载<运算符.我检查了Apple文档和所有SO帖子,但它们都没有编译.Xcode给了我这个警告:
一行上的连续声明必须用';'分隔
并且它一直建议我在小于符号后插入分号.对我所做错的任何见解都表示赞赏.
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
}
}
Run Code Online (Sandbox Code Playgroud)
Seb*_*ler 10
您会看到此错误,因为运算符必须在类定义之外重载,例如move
func == (lhs: SomeClass, rhs: SomeClass) -> Bool
{
return true
}
func < (lhs: SomeClass, rhs: SomeClass) -> Bool
{
return true
}
Run Code Online (Sandbox Code Playgroud)
在你的类定义之外,它将起作用(除了它们不会通过此实现返回正确的结果).
| 归档时间: |
|
| 查看次数: |
611 次 |
| 最近记录: |