我在地圖串列中有這個簡單的嵌套串列,如何迭代這個變數?下面的代碼會引發錯誤。
可空運算式不能用作 for-in 回圈中的迭代器。
void main() {
final changes = [
{
'version': '1',
'date': '3 Nov 2021',
'content': [
'Changes 1',
'Changes 2',
],
},
{
'version': '2',
'date': '5 Nov 2021',
'content': [
'Changes 3',
'Changes 4',
],
},
];
for (var el in changes) {
for (var subEl in el['content']) {
print (subEl);
}
}
}
uj5u.com熱心網友回復:
您必須說明物件的型別。
void main() {
final List<Map<String, dynamic>> changes = [
{
'version': '1',
'date': '3 Nov 2021',
'content': [
'Changes 1',
'Changes 2',
],
},
{
'version': '2',
'date': '5 Nov 2021',
'content': [
'Changes 3',
'Changes 4',
],
},
];
for (var el in changes) {
for (var subEl in el['content']) {
print (subEl);
}
}
}

uj5u.com熱心網友回復:
因為el是一張地圖,它不知道它是否el['content']為 null 或者它是否是一個串列,你可以將它轉換為Listlike this 以使其作業。
for (var el in changes) {
for (var subEl in (el['content'] as List)) {
print (subEl);
}
}
如果它碰巧不是串列,則此代碼將崩潰,例如,您可以像這樣使其更安全
for (var el in changes) {
var list = el['content'];
if (list is List) {
for (var subEl in list) {
print (subEl);
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/491918.html
