在 Dart 中,如何将对象列表初始化为私有(private)类成员?
这是我的Dartpad Link.
这是我的示例代码。
// on dartpad: https://dartpad.dev/cfded55df52dd2bb37228d12c7ef049c
void main() {
Co co = Co();
print(co.getTag1()); //Out: profitable
print(co.getMgr1().fn); //Out: null
}
class Co {
List<String> _tags = ['profitable', '1999', 'public', 'NYSE'];
String getTag1() {
return _tags.first;
}
List<Mgr> _mgrs = List.from([
Mgr(
fn: 'Janice',
ln: 'Brown',
),
Mgr(
fn: 'Laura',
ln: 'Lopez',
),
Mgr(
fn: 'Linda',
ln: 'Oakley',
),
], growable: false);
Mgr getMgr1(){
return _mgrs.first;
}
}
class Mgr {
String fn;
String ln;
Mgr({String fn, String ln});
}
具体来说,如何获得 Main >> print(co.getMgr1().fn);
的输出成为“珍妮丝”?谢谢。
最佳答案
您没有将构造函数中传递的值存储在 Mgr
的字段中。 ,因此输入不会存储在任何地方。
更改class Mgr
到
class Mgr {
String fn;
String ln;
Mgr({this.fn, this.ln});
}
或者class Mgr {
String fn;
String ln;
Mgr({String fn, String ln}) {
this.fn = fn;
this.ln = ln;
}
}
这会将传递的参数存储在类的字段中,以便以后可以访问它们。您对
List
的初始化在这种情况下完全没问题。
关于Dart - 如何将对象列表初始化为私有(private)类成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62701262/