⚡
【Dart】コンストラクタのティアオフ【v2.1.5】
ティアオフ(Tear offs)
ティアオフとはその名の通りあるオブジェクトのメソッドを引き剥がしてクロージャ化することである。
簡単にいうと、メソッドへのポインタ、参照を得ることができる。
JavaScriptやPythonでも同じ機能はある。
jsの例
const obj = {
sayHello: () => console.log("hello!"),
}
const greet = obj.sayHello;
greet(); // hello!
コンストラクタのティアオフ
Dart v2.1.5から .new
でコンストラクタをクロージャ化することができる。
class MyClass {}
final closure = MyClass.new;
print(closure()); // Instance of MyClass
Flutterでの例
class FruitWidget extends StatelessWidget {
Widget build(BuildContext context) {
return Column(
children: ['Apple', 'Orange'].map(Text.new).toList());
}
}
Discussion