Dart:Dart如何与Class的Constructor中的命名参数匹配?

时间:2019-04-06 11:18:27

标签: dart flutter

Dart如何在类的构造函数中匹配命名的参数?

示例(有效):

Class MyWidget {

    final String a;
    final String b;

    MyWidget (
        @required this.a,
        @required this.b
    )

    @override // Yes, it's Flutter
    Widget build(BuildContext context) {
        return ....
    }
}


/// Calling MyWidget
return MyWidget(
    a: x,
    b: y
)

这按预期工作。 但是在此设置中,由于调用中的“ a”与MyWidget中的“ this.a”相同,因此我不得不在MyWidget中将变量命名为“命名参数”。

我想要的是这样的:

Class MyWidget {

   final String aaa;
   final String bbb;

   MyWidget (
       @required a // And assign that value to this.aaa,
       @required b // And assign that value to this.bbb
   )
}

如何将传递的命名参数'a'的值分配给局部变量'aaa'?

1 个答案:

答案 0 :(得分:2)

您必须权衡this.xxx语法的简单性,如下所示:

class MyWidget {
  final String aaa;
  final String bbb;

  MyWidget({a, b})
      : aaa = a,
        bbb = b;
}