为什么在Swift所属类型中未声明运算符重载?

布恩

为什么Swift中的运算符重载没有在它所属的类型内声明(例如在C ++中),而是在全局范围内声明?

用户名

旁注:真的重要吗?这就是来龙去脉。

没有将运算符声明为内部类型,因为它们更类似于全局函数或与全局函数内联。类方法和结构函数通常会修改查询被调用的实体。

从这种意义上讲,let x = a + b它更像是写作let x = add(a, b)let x = a.add(b)因为后者会使您相信您正在修改接收器(这是不正确的)。

可能有人争辩说您正在查询它,实际上是在问:“ A,如果将您添加到B中,结果将是什么”,但这不是考虑对象/类型差异的自然方法。

归根结底,这是一个设计决定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么D中的char []数组没有引发Result类型的[]运算符重载?

为什么SceneKit中没有运算符重载?

为什么在运算符重载中需要引用?

JSP EL:为什么not运算符对未声明的变量求值为true

为什么称为运算符重载?

Swift中的重载运算符

当声明不同类型的对象时,为什么var声明中的运算符“=”位于不同的位置?

模板化类前向函数声明中的正确之处是什么,运算符> 重载

<<重载运算符,为什么它不能仅返回类类型(无参考)

为什么 Nullable<T> 不会重载 == 运算符?

为什么我的重载乘法运算符无法识别?

Java为什么不提供运算符重载?

Java为什么不需要运算符重载?

为什么Haskell难以解决“重载”运算符?

Java不能重载任何运算符。为什么?

为什么<iostream>运算符<<选择明显错误的重载?

为什么选择这种转换运算符的重载?

为什么此运算符重载起作用?

为什么在重载的ostream运算符中引用lambda中的vector会导致错误?

您可以在Swift中重载类型转换运算符吗?

为什么在python中重载数学运算符取决于它的使用顺序?

为什么__getattr__能够处理python 2.x中的内置运算符重载?

在C ++中重载运算符时,为什么T *优于bool?

为什么MSVC中==枚举的运算符重载不明确

为什么在带有多个参数的重载运算符+中传递const引用

为什么在Swift中发生“使用未声明类型的UITableView”?

类型扩展中的重载运算符

流运算符重载中的返回类型

模板中默认类型的重载运算符