class Vector{ var x:Int var y:Int init(x _x:Int,y _y:Int){ self.x = _x self.y = _y }}func *(lhs:Vector,rhs:Vector)->Int{ return lhs.x * rhs.y + rhs.x + rhs.y}func +(lhs:Vector,rhs:Vector)->Vector{ return Vector(x: lhs.x + rhs.x,y: lhs.y + rhs.y)}var v1 = Vector(x: 6,y: 1)var v2 = Vector(x: 3,y: 1)v1 * v2 + v1解决方法 嗯.它实际上似乎你可以.
operator infix + { associativity left precedence 140 }operator infix * { associativity left precedence 30 }let x = 3 + 4 * 5 // outputs 35
但据我所知,这只能在“文件范围”完成,至少根据在类中包含它所产生的编译器错误.
总结‘operator’ may only be declared at file scope.
以上是内存溢出为你收集整理的Swift中的运算符优先级重载全部内容,希望文章能够帮你解决Swift中的运算符优先级重载所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)