Dart - 初始化静态字段时的循环依赖
Dart - Circular dependency while initializing static field
我是 dart 的新手,刚遇到一个我还不明白的问题。
我写了这个 class:
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)';
}
使用此 class 时,例如使用下面的语句,我得到一个 "Circular dependency while initializing static field"-error.
Currency currency = Currency.EURO;
谁能给我解释一下这是怎么回事?
我无法重现你的错误,但是在你将其他人重定向到
的构造函数之前缺少 const
const Currency(this.symbol, this.name);
我是 dart 的新手,刚遇到一个我还不明白的问题。 我写了这个 class:
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)';
}
使用此 class 时,例如使用下面的语句,我得到一个 "Circular dependency while initializing static field"-error.
Currency currency = Currency.EURO;
谁能给我解释一下这是怎么回事?
我无法重现你的错误,但是在你将其他人重定向到
的构造函数之前缺少const
const Currency(this.symbol, this.name);