StarknetAstro

StarknetAstro

13_Cairo1.0中的Map(映射)

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]

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。