为什么Swift中的运算符重载没有在它所属的类型内声明(例如在C ++中),而是在全局范围内声明?
旁注:真的重要吗?这就是来龙去脉。
没有将运算符声明为内部类型,因为它们更类似于全局函数或与全局函数内联。类方法和结构函数通常会修改或查询被调用的实体。
从这种意义上讲,let x = a + b
它更像是写作let x = add(a, b)
,let x = a.add(b)
因为后者会使您相信您正在修改接收器(这是不正确的)。
可能有人争辩说您正在查询它,实际上是在问:“ A,如果将您添加到B中,结果将是什么”,但这不是考虑对象/类型差异的自然方法。
归根结底,这是一个设计决定。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句