tear-off
code:tear_off.dart
names.forEach(print);
と書いて
code:for_print.dart
names.forEach((name) {
print(name);
});
の代わりになることは知っていたが、なぜ出来るのかはしっかりと理解していなかった。
これはtear-offという言語機能?
code:tear-off.md
If you refer to a method on an object but omit the parentheses, Dart gives you a “tear-off”—a closure that takes the same parameters as the method and invokes it when you call it.
If you have a function that invokes a method with the same arguments as are passed to it, you don’t need to manually wrap the call in a lambda.
クロージャーから返ってくる値と関数の引数が同じ場合、関数の括弧を省略することによって、"tear-off"を使うことができる。
渡されたものと同じ引数でメソッドを呼び出す関数がある場合は、呼び出しをラムダで手動でラップする必要はない。