クロージャのあるDartではC++ likeなbind()は不要
DartでBindとジョブキューみたいなの作ってみた - とりあえず適当な名前にした
C++ (C++11以前) でよく使われる関数オブジェクトは無名関数やクロージャがない言語での苦肉の策なので、クロージャのあるDartではあまり使う必要はないと思います。このあたりがまさにbetter JavaScriptたるDartの強いところだと思いますね。
#!/usr/bin/env dart // ある関数があったとして num add(num a, num b) => a + b; typedef num UnaryFunc(num); void main() { var x = 42; // bindされる変数 { // 型付きの変数にクロージャを代入 final UnaryFunc addx = (num a) => add(a, x); print( addx(10) ); // -> 52 } { // 型なしの変数にクロージャを代入 final addx = (num a) => add(a, x); print( addx(11) ); // -> 53 } { // lexical scopeでクロージャを定義 int addx(num a) => add(a, x); print( addx(12) ); // -> 54 } }