Dart-初始化静态字段时的循环依赖项
我是dart新手,刚刚遇到一个我还不明白的问题。 我写了这节课:Dart-初始化静态字段时的循环依赖项,dart,circular-dependency,Dart,Circular Dependency,我是dart新手,刚刚遇到一个我还不明白的问题。 我写了这节课: class Currency { final String symbol; final String name; // constants for all available Currencies static const Currency EURO = const Currency._euro(); static const Currency POUND = const Currency
class Currency {
final String symbol;
final String name;
// constants for all available Currencies
static const Currency EURO = const Currency._euro();
static const Currency POUND = const Currency._pound();
static const Currency DOLLAR = const Currency._dollar();
// All available currencies as a list
static const List<Currency> CURRENCIES = const [
EURO,
POUND,
DOLLAR,
];
// Default constructor
Currency(this.symbol, this.name);
// Named constructors
const Currency._euro() : this('€', 'Euro');
const Currency._pound() : this('£', 'British Pound');
const Currency._dollar() : this('\$', 'US Dollar');
// toString()
@override
String toString() => '$symbol ($name)';
}
有人能给我解释一下发生了什么吗?我无法重现您的错误,但是在您将其他人重定向到的构造函数之前,
常量丢失了
const Currency(this.symbol, this.name);
你用的是哪种飞镖?这是在DDC、dart2js、控制台应用程序、颤振中吗?我将颤振(版本0.1.5)与Dart(版本2.0.0-dev.28.0.flatter-0b4f01f759)一起使用。这确实解决了问题。你能解释一下这是为什么吗?const Currency._euro()代码>要求const
,这只适用于const
构造函数。如果您转发到另一个构造函数,该构造函数也必须是const。不确定这是否是您所要求的。我想我要问的是,为什么省略一个const
会导致循环依赖。这可能与常量的延迟初始化有关吗?可能,不确定,但我无法重现您的错误。可能是因为我使用了更新的Dart版本(2.0.0-dev.24.0)
const Currency(this.symbol, this.name);