这个问题不是关于运算符重载,而是关于不同模块中运算符声明之间的冲突。换句话说,想象两个模块声明相同的运算符,如下所示:
// Module1
infix operator &+ {
associativity left
precedence 100
}
// Module2
infix operator &+ {
associativity right
precedence 50
}
如果我在项目中同时使用Module1
和Module2
,哪些声明优先于什么情况?它完全基于我导入特定文件的那个? (这是我的猜测。)它是全球性的吗?
我即将做一个实验来弄清楚这个问题,但我认为无论如何都要在SO上提出这个问题是有用的。