我喜欢 Dart 的众多优点之一是它简洁。
\n\n例如,如下所示的单行函数:
\n\n // example 1\nString toStr() => (_iValue/_iScale).toStringAsFixed(_iDecimals);\nRun Code Online (Sandbox Code Playgroud)\n\n然而,这似乎回避了一个问题:是否存在与不返回值的单行函数等效的函数。例如。
\n\n// example 2\nvoid deductDbl(double dValue) {\n _iValue -= (dValue * _iScale).toInt();\n}\nRun Code Online (Sandbox Code Playgroud)\n\n虽然这可以在一行上用 \xe2\x80\x9c{ 和 }\xe2\x80\x9d 来表达,但这可能会让人皱眉。类似的类比可能是一行 \xe2\x80\x9cif 语句\xe2\x80\x9d,其中不需要括号。我认为大多数人将其格式化为两行,因为它更好地说明了逻辑。然而,它仍然比使用 \xe2\x80\x9c{}\xe2\x80\x9d 更简洁,尽管如果愿意的话仍然可以选择使用 \xe2\x80\x9c{}\xe2\x80\x9d 。
\n\n作为示例 2 的替代方案,我注意到以下内容似乎有效,但可能由于某种原因而令人不悦:
\n\n // example 3\ndeductDbl(double dValue) => _iValue -= (dValue * _iScale).toInt();\nRun Code Online (Sandbox Code Playgroud)\n\n是否可以使用 \xe2\x80\x9cExample 3\xe2\x80\x9d,或者对于不返回的单行函数,是否有另一个等效于 \xe2\x80\x9c=>\xe2\x80\x9d一个值?
\n=>我的建议是,您不应该尝试对返回类型为 的函数使用简写形式void。你的第三个例子,
deductDbl(double dValue) => _iValue -= (dValue * _iScale).toInt();
Run Code Online (Sandbox Code Playgroud)
实际上返回一个int. 老实说,这和之间的区别
deductDbl(double dValue) { _iValue -= (dValue * _iScale).toInt(); }
Run Code Online (Sandbox Code Playgroud)
是一个空白字符。真的有那么糟糕吗?
| 归档时间: |
|
| 查看次数: |
5545 次 |
| 最近记录: |