6.Map類型的應用
你一定有過查詞典的經歷。以英漢詞典為例,當你需要學習某個漢語詞彙對應的英文詞彙時,首先需要在索引處找到這個漢語詞彙,不同的漢語詞彙有可能會查到相同的英文詞彙。字典數據類型也是這樣的,字典是一組鍵值對的集合,通過鍵可以完成對值的修改、查找、添加或刪除。在Dart中,字典類型叫作Map。
使用大括號可以通過字面量值創建字典對象,例如:
對於Map類型,在創建時,鍵(Key)和值(Value)要成對出現。一般常見程式語法(例如Python中),鍵都是==字符串==類型的。但是在Dart中並沒有嚴格的語法規定,鍵可以是任意類型的,值也可以是任意類型的。
與List類型一樣,一旦Map的類型被確定,其鍵和值的類型就必須遵守。完整的Map類型變量的聲明格式如下:
通過鍵可以實現對值的獲取、設置和新增,例如:
//使用構造方法包建字典
var map3 = Map() ;
//新增鍵值對
map3["name"]="Ahwu";
print(map3 ["name"]);//Ahwu
//修改鍵值
map3 ["name"] = "Lucy" ;
print (map3 ["name"]) ;//Lucy
//不存在的鍵值將返回null
print(map3["age"]);//null
//將某個鍵的值置為null,並不會將此鍵值對刪除
map3["name"] = null;
print(map3["name"]);//null
Map對像中常用的屬性列舉如下:
//判斷Map 是否為空
print(("1":1,"2":2).isEmpty) ;//false
//判斷Map是否為非空
print(("1":1,"2":2) .isNotEmpty);//true
//獲取Map所有的鍵
print(("name" : "Lucy","age":25].keys) ;//(name, age)
//獲取Map所有的值
print(("name" : "Lucy", "age":25).values);//(Lucy,25)
//獲取map中鍵值對的個數
print(("name" : "Lucy","age":25).length);//2
//獲取類型
print({"name" : "Lucy"}.runtimeType);//_InternalLinkedHashMap<String, String>
常見用法¶
var map = {};
//向Map中追加鍵值對
map.addAll({"name":"Lucy","age":28});//{name: Lucy, age: 28}
//判斷Map中是否包含某個鍵
print(map.containsKey("name"));//true
//判斷Map中是否包含某個值
print(map.containsValue("Lucy"));//true
//刪除某個鍵值對
map.remove("name");
//將Map轉換成字符串
print(map.toString());
//清空Map中的鍵值對
map.clear();
Last update :
13 novembre 2024
Created : 13 novembre 2024
Created : 13 novembre 2024