我一直在学习Swift,并对使用Generics和Operator Overloading有疑问。这是我的要求:
似乎Swift不够聪明,不允许我编写一个泛型运算符重载函数,它引用了通用数组[T]而没有一些解决方法?
我已经阅读了这篇文章:[http://www.raywenderlich.com/80818/operator-overloading-in-swift-tutorial][1]并且那里给出的解决方案似乎非常复杂。
我只是想知道专业人士之间的普遍共识是什么? 对不起,我很快就会将代码示例发布为编辑。
保
答案 0 :(得分:1)
以下是你如何做到这一点。它非常简单,你只需要确保T是Equatable。
struct Matrix<T> {
// Definition goes here.
var array = [T]()
}
func ==<T: Equatable>(lhs: Matrix<T>, rhs: Matrix<T>) -> Bool {
return lhs.array == rhs.array
}