【发布时间】:2020-09-21 12:58:48
【问题描述】:
你猜我有这个扩展:
extension MyWidget on Widget {
Widget p(double padding) => Padding(padding: EdgeInsets.all(padding), child: this);
Widget p0(double padding) => Padding(padding: EdgeInsets.zero, child: this);
Widget p1(double padding) => Padding(padding: EdgeInsets.all(1), child: this);
Widget p2(double padding) => Padding(padding: EdgeInsets.all(2), child: this);
Widget p3(double padding) => Padding(padding: EdgeInsets.all(3), child: this);
Widget p4(double padding) => Padding(padding: EdgeInsets.all(4), child: this);
Widget p5(double padding) => Padding(padding: EdgeInsets.all(5), child: this);
Widget p6(double padding) => Padding(padding: EdgeInsets.all(6), child: this);
Widget p7(double padding) => Padding(padding: EdgeInsets.all(7), child: this);
Widget p8(double padding) => Padding(padding: EdgeInsets.all(8), child: this);
Widget p9(double padding) => Padding(padding: EdgeInsets.all(9), child: this);
Widget p10(double padding) => Padding(padding: EdgeInsets.all(10), child: this);
Widget center() => Center(child: this);
}
我怎样才能拥有这个示例方法而不是所有定义?
/* Center().p2 */
/* Center().p8 */
extension MyWidget on Widget {
Widget p(double padding) => Padding(padding: EdgeInsets.all(padding), child: this);
Widget p*() => Padding(padding: *, child: this);
Widget center() => Center(child: this);
}
我知道,我可以在下面扩展,但我想知道这个实现是否可以在 dart 中定义
/* Center().p(2) */
extension MyWidget on Widget {
Widget p(double padding) => Padding(padding: EdgeInsets.all(padding), child: this);
Widget center() => Center(child: this);
}
【问题讨论】:
标签: flutter dart extension-methods