gpt4 book ai didi

constructor - 为什么 Dart 中 final 字段的初始化是错误的?

转载 作者:行者123 更新时间:2023-12-04 03:01:23 26 4
gpt4 key购买 nike

我有一个带有两个 final 字段的简单类,其中一个是用于存储数据的映射,另一个是在调用时更新数据的步进函数:

class Data
{

//for each name a list of observations
final Map<String,List<double>> _dataMap;

/**
* the update step
*/
final Step _updateStep;

Step只是一个 typedef .

现在,我想要一个有一个参数的构造函数:一个带引用的函数 Map<...>并返回一个新的 Step .这对我来说似乎是合乎逻辑的,更新程序需要引用 map 来更新它。

为什么这个构造函数失败了?

  Data(Step initializer(Map<String,List<double>> dataReferences))
: _dataMap = new Map(),
_updateStep = initializer(_dataMap);

错误在第二步

illegal implicit access to receiver 'this';

什么?这是怎么泄露的?如何解决?

最佳答案

Günter Zöchbauer 已经解释了您的错误原因。

这里有一个解决方法:

Data(Step initializer(Map<String,List<double>> dataReferences))
: this._internal(initializer, new Map());

Data._internal(initializer, map)
: _dataMap = map,
_updateStep = initializer(map);

关于constructor - 为什么 Dart 中 final 字段的初始化是错误的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26227704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com