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]

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。