Sta*_*cky 3 variables function function-declaration dart
在 Dart 中 - 与许多其他语言一样 - 声明函数的方法不止一种。问题是,是否存在任何差异,即“我什么时候应该使用哪个”?
void foo(int i) {
print('i = $i');
}
void main() {
void Function(int) bar = (int j) {
print('j = $j');
};
foo(1);
bar(2);
}
Run Code Online (Sandbox Code Playgroud)
除了可以被覆盖的事实之外,声明foo
或bar
其他方面有什么区别吗?bar
函数可以通过以下方式引入
就Dart 规范而言,函数文字(又名匿名函数)和其他声明之间有 2 个区别
如果您希望保持类型安全,则必须编写很长的声明。
考虑这个例子:
String foo(int i, {bool b}) => '$b $i'; // return type declared
final bar = (int i, {bool b}) => '$b $i'; // return type could not be infered
final String Function(int i, {bool b}) bar = (i, {b}) => '$b $i'; // return type infered
Run Code Online (Sandbox Code Playgroud)
依我看来
bar
不如foo
声明那么可读PS如果我错过了什么 - 请编辑我的答案或在评论中联系我
归档时间: |
|
查看次数: |
2645 次 |
最近记录: |