上一次说了这个工具starklings-cairo1安装入门以及使用案例,今天继续
类型Enum
今天主要说一个enum类型。
在cairo里, enum枚举类型, 有几下几种定义方法
不带参数
第一是:不带参数,类似与 其他语言的枚举类型
enum Message {
Say,
Read,
Write,
Echo
}
使用的时候,语法是:Message::Say, Message::Read
带参数
而且每个类型可以携带不同的参数
enum Message {
Say,
Read :felt252,
Write: (u16,u16),
Echo: (u16, u16, u16),
}
上面:枚举Message的第一项是 不带参数的 Say,
第二项是 : 带一个felt252 参数的 ,Read
第三项是: 带两个 u16参数的 Write,
第四个是: 带三个参数的 Echo
这种带参数的定义方式 是其他语言没有的, 不管是c/c++, java, python等都没有这个语法。
用法
上面带参数的枚举类型 ,赋与参数以后如下:
Message::Read('hello world')
Message::Write((10, 30))
Message::Echo((0, 255, 255))
最后想说一点的就是 ,这个带参数的定义方式, 一定是 名称 :多个参数逗号分隔,并放在括号里。