13_Cairo1.0 中的 Map (映射)#
此文章使用的 Cairo 編譯器版本:2.0.0-rc0。因為 Cairo 正在快速更新,所以不同版本的語法會有些許不同,未來將會將文章內容更新到穩定版本。
基本用法#
Map 也可以被稱為字典 (dictionary),Cairo 中就是以字典來稱呼的。基本用法主要包括:創建、插入鍵值對數據 和 讀取數據。先看一些例子:
use core::debug::PrintTrait;
use dict::Felt252DictTrait;
use traits::Default;
fn main(){
let mut map : Felt252Dict<felt252> = Default::default();
map.insert(1,'shalom');
map[1].print();
}
首先創建一個字典,需要使用到 Default trait,它返回一個初始狀態的字典,類型是 Felt252Dict。同時也需要指明字典中的變量類型是什麼。以上創建的 map,類型就是 Felt252Dict<felt252>
。
Felt252Dict
是目前 Cairo 支持的字典類型,它只可以使用 felt252 類型的變量作為鍵,值可以是多種類型:u8
, u16
, u32
, u64
, u128
, felt252
。所以它被命名為 Felt252Dict。
插入鍵值對數據則是使用 insert (key, value) 成員函數,第一個參數為 key,第二個參數為 value。
讀取比較好理解,中括號裡加入 key map[key]
。