Dart中如何用变量存储构造函数参数并复用至多个构造函数?
在Dart中用容器传递构造函数命名参数的实现方法
完全可以实现你的需求,Dart支持通过**操作符展开Map,将其键值对作为命名参数传递给构造函数(或普通函数)。
具体实现步骤
- 定义参数存储容器:使用
Map存储命名参数的键值对,键名要和构造函数的命名参数完全一致,值的类型需匹配参数类型:
var parametersHolder = { 'named1': "str", 'named2': "lorem", };
- 调用构造函数时展开Map:在构造函数调用时,使用
**操作符展开该Map,自动将键值对映射为对应的命名参数:
constructorA(**parametersHolder); constructorB(**parametersHolder);
注意事项
- 构造函数必须支持对应的命名参数(必填或可选均可),若Map中包含构造函数未定义的键,会触发编译错误。
- Map的值类型需要与构造函数参数的类型兼容,否则会出现类型不匹配错误。
- 如果是位置参数,可使用
...操作符展开列表传递,比如var posParams = [1, "test"]; constructorC(...posParams);。
内容的提问来源于stack exchange,提问作者Anas Esh
相关产品推荐
相关产品推荐

