Dart:Dart 如何匹配类的构造函数中的命名参数?
Posted
技术标签:
【中文标题】Dart:Dart 如何匹配类的构造函数中的命名参数?【英文标题】:Dart: How does Dart match the named parameters in a Constructor of a Class? 【发布时间】:2019-08-28 03:13:23 【问题描述】: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”?
【问题讨论】:
【参考方案1】:您必须权衡this.xxx
语法的简单性,如下所示:
class MyWidget
final String aaa;
final String bbb;
MyWidget(a, b)
: aaa = a,
bbb = b;
【讨论】:
感谢 Richard,我还在 Dartlang 手册中找到了它。它被称为“initializer list”以上是关于Dart:Dart 如何匹配类的构造函数中的命名参数?的主要内容,如果未能解决你的问题,请参考以下文章