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

问题描述 投票:1回答:1

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
)

这按预期工作。但是在这个设置中,我被迫将MyWidget中的变量命名为与命名参数相同,因为调用中的'a'与MyWidget中的'this.a'相同。

我想要的是这样的:

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

dart flutter
1个回答
2
投票

你必须牺牲this.xxx语法的简单性,如下所示:

class MyWidget {
  final String aaa;
  final String bbb;

  MyWidget({a, b})
      : aaa = a,
        bbb = b;
}
© www.soinside.com 2019 - 2024. All rights reserved.