Dart如何与Class的构造方法中的命名参数匹配?

示例(有效):

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'?

最佳答案

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

class MyWidget {
  final String aaa;
  final String bbb;

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

关于dart - Dart:Dart如何与Class的Constructor中的命名参数匹配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55548548/

10-10 17:56