【发布时间】:2020-05-29 08:57:38
【问题描述】:
这听起来与以下内容完全相同:Does dart support operator overloading
但是这个名字有误导性,问题是关于如何覆盖现有的操作符(== 操作符)。
据我了解,重载一个函数意味着有多个实现,这些实现仅在参数上有所不同,而在函数名上没有:
int max(int a, int b);
double max(double a, double b);
相比之下,重写意味着重写现有的实现。由于替换了原始功能,因此没有名称冲突。这在 OOP 中很常见,您可以扩展基类并覆盖其方法。
docs 表示存在可覆盖的运算符。所以我看到你可以实现自定义运算符。同时,dart 不支持重载方法。那么,dart 是否支持重载运算符?
能不能写出如下代码:
class Matrix{
Matrix operator+(int b){//...};
Matrix operator+(Matrix b({//...};
}
【问题讨论】:
-
这能回答你的问题吗? Function overloading in Dart
标签: dart