你认为我有这个扩展:
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);
}发布于 2020-09-22 01:07:28
不,创建动态签名的语法或类似的语法是不可能的。
如果你想为类似的功能创建不同的签名,代码生成通常是你想要查看的工具,但在这种情况下,我怀疑它是你想要的。
https://stackoverflow.com/questions/63992774
复制相似问题