Flutterのtear-offとは?使うべき理由
tear-off とは
Flutterで関数のコールバックに匿名関数を用いない方法です。他の言語でいうfunction pointerです。
・tear-offの例
TextButton( onPressed:button.toggle )
・tear-offを使わない例
TextButton( onPressed: () { button.toggle(); } )
TextButton( onPressed: () => button.toggle() )
tear-offのメリット
匿名関数分のアロケーションが必要なくなります。tear-offでは関数をただ参照しているだけです。これにより、メモリと実行速度が改善されます。
関数の決定がruntimeでなくcompile時になります。これにより、実行速度が速くなります。*
可読性があがります。
* compile時になることでメリットもデメリットもあります(Compile time Polymorphism VS Run time Polymorphism) www.geeksforgeeks.org
forEachではtear-offを使おう
forEachはbreak, continue, return, awaitができないため使われず、for-inが使われるのが一般的です。
しかし、下記のようにtear-offを使うときだけは推奨されます。
list.forEach(print);
以上です!ありがとうございました。