我尝试在一些 dart 代码中使用方法重载,并很快了解到 dart 中不提供重载。
我的问题是:为什么不提供,推荐的替代方案是什么?是否有标准的命名约定,因为执行相同操作但具有不同输入的方法必须具有不同的名称?
使用命名参数然后检查调用者是否提供了足够的信息来完成计算是标准的吗?
假设我有一个方法可以返回某人一年赚了多少钱,称为yearlyIncome
.
在Java中,我会创建一个像这样的方法
double yearlyIncome(double hourlyRate, double hoursWorkedPerYear)
也许还有像这样的方法
double yearlyIncome(double monthlyRate, int monthsWorkedPerYear)
等等。它们都用于计算相同的事物,但输入不同。在 Dart 中执行此操作的最佳标准化方法是什么?
预先非常感谢。
Dart 根本不支持函数重载。
函数重载需要静态类型。 Dart 的核心是一种动态类型语言。
您可以为方法使用不同的名称或可选的命名或未命名参数
// optional unnamed
void foo(int a, [String b]);
foo(5);
foo(5, 'bar');
// optional named
void foo(int a, {String b});
foo(5);
foo(5, b :'bar');
可选参数也可以有默认值。可选的命名参数和未命名参数不能一起使用(单个函数只能使用其中之一)
对于构造函数,您可以使用命名构造函数作为替代方法
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)