我喜欢 Dart 的众多优点之一是它不冗长。
例如,一个单行函数,如下所示:
// example 1
String toStr() => (_iValue/_iScale).toStringAsFixed(_iDecimals);
然而,这似乎是一个问题,即是否存在不返回值的单行函数的等价物。例如。
// example 2
void deductDbl(double dValue) {
_iValue -= (dValue * _iScale).toInt();
}
虽然这可以在一行中同时使用“{ 和 }”来表示,但这可能是不受欢迎的。类似的类比可能是单行“if 语句”,其中不需要括号。我认为大多数人将其格式化为两行,因为它更好地说明了逻辑。但是,它仍然没有使用“{}”那么冗长,尽管如果愿意,仍然可以选择使用“{}”。
作为示例 2 的替代方案,我注意到以下内容似乎有效,但由于某种原因可能不赞成:
// example 3
deductDbl(double dValue) => _iValue -= (dValue * _iScale).toInt();
是否可以使用“示例 3”,或者对于不返回值的单行函数是否有另一个等效于“=>”的方法?