Cairo 101 入门

1. Hello Cairo
2. 基本类型
3. 局部和状态变量
4. 变量可变性
5. 函数
6. 元组 Tuple
7. 数组
8. 结构体
9. 枚举
10. 映射和其他类型
11. 控制流
12. 模式匹配
13. Option
14. 类型转换
15. 构造函数
.
枚举

在本章节中,我们将介绍在Cairo中使用enum(枚举)的方法。

Cairo 中的枚举

Cairo 中的枚举是一种定义一组命名值(变量)的方法,每个值都有一个关联的数据类型。使用枚举可以提高代码的可读性并减少错误。

使用enum关键字定义枚举,并在其后给出一个首字母大写的名称。

#[derive(Drop, Serde)]
enum Colors { 
    Red: (), 
    Green: (), 
    Blue: (), 
}

与Rust不同,Cairo枚举中的变量具有关联类型。在上面的示例中,Colors枚举中的Red、Green和Blue变量具有单位类型()。在以下示例中,我们定义了一个具有不同变量类型的Actions枚举:

#[derive(Copy, Drop)]
enum Actions { 
    Forward: u128, 
    Backward: u128, 
    Stop: (),
}

创建枚举变量

您可以使用以下语法创建枚举变量:

let forward = Actions::Forward((1_u128));

在函数中返回枚举

枚举可以在函数中返回:

// 返回红色
#[external(v0)]
fn get_red(self: @ContractState) -> Colors {
    Colors::Red(())
}

#[external(v0)]
fn create_enum(self: @ContractState) {
    // create enum
    let forward = Actions::Forward((1_u128));
    let red = get_red(self);
}

总结

在本教程中,我们介绍了如何定义枚举、创建枚举变量以及在函数中返回枚举。这些知识将帮助您在Cairo中创建更具可读性和抗错误性的代码。

PreviousNext