Car*_*ght 3 constructor final dart
我有一个带有两个final字段的简单类,其中一个是存储数据的映射,另一个是调用时更新数据的step函数:
class Data
{
//for each name a list of observations
final Map<String,List<double>> _dataMap;
/**
* the update step
*/
final Step _updateStep;
Run Code Online (Sandbox Code Playgroud)
Step只是一个typedef.
现在,我想要一个具有一个参数的构造函数:一个接受引用Map<...>并返回new 的函数Step.这对我来说似乎是合乎逻辑的,更新程序需要引用地图来更新它.
为什么这个构造函数失败了?
Data(Step initializer(Map<String,List<double>> dataReferences))
: _dataMap = new Map(),
_updateStep = initializer(_dataMap);
Run Code Online (Sandbox Code Playgroud)
错误发生在第二步
非法隐含访问接收者'this';
什么?这是怎么泄漏的?怎么解决?
GünterZöchbauer已经解释了您的错误原因.
这是一个解决方法:
Data(Step initializer(Map<String,List<double>> dataReferences))
: this._internal(initializer, new Map());
Data._internal(initializer, map)
: _dataMap = map,
_updateStep = initializer(map);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1299 次 |
| 最近记录: |