Dart 提供 3 種 Collection,Map 為其中之一,相當於 JavaScript 的 Object。
Version
Dart 3.5
Mutable Map
void main() {
var map1 = {'Sam': 20};
var map2 = <String, int>{'Sam': 20};
Map<String, int> map3 = {'Sam': 20};
map1['Tom'] = 30; // add
map1['Sam'] = 10; // edit
map1.remove('Tom'); // delete
map1.clear(); // delete all
print('map1: $map1');
}
- 可使用
var
的 Type Inference 宣告的 Map 為 Mutable Map var
亦可在等號右側加上<String, int>
限定 Mutable Map 內 element 的 type- 亦可使用
Map<String, int>
直接宣告 Mutable Map 與 element 的 type - Mutable Map 可自由地
新增
、修改
、刪除
與清空
Map 內的 element - Dart 不可使用如 JavaScript 的
.length = 0
清空 Map
Immutable Map
void main() {
var map1 = const {'Sam': 20};
const map2 = <String, int>{'Sam': 20};
const map3 = <String, int>{'Sam': 20};
const Map<String, int> map4 = {'Sam': 20};
map1['Tom'] = 30; // X add
map1['Sam'] = 10; // X edit
map1.remove('Tom'); // X delete
map1.clear(); // X delete all
print('map1: $map1');
}
- 可加上
const
宣告為 Immutable Map - Immutable Map 無法對 Map 內的 element
新增
、修改
、刪除
與清空
Conclusion
- Dart 3 還可使用
var map1 = new Map()
方式建立 Map,但 Android Studio 已經會提出警告 - Dart 不可使用如 JavaScript 的
.length = 0
清空 Map - 在使用上可將 Map 當作 JavaScript 的 Object 使用,