Option表示一个值存在还是不存在,定义是:
enum Option<T> { Some: T, None: (), }
Some可以是任何类型的值, None只能是 (),这里cairo语法和rust 几乎一致,都是利用类型系统做安全检查,就连获取Some里的实际值也是使用 unwarp方法。
创建Some变量
Option::Some(1_u8)
创建None变量
Option::None(())
这两个Option自带 is_some, is_none函数,就像名字表达一样,这个函数返回boo变量。
点击 开发环境 remix的 deploy按钮。
下面是交互过程(handle_option_1 输入数字,竟然执行reverted!!)
这里revert原因,个人分析, 因为参数是 Option<u8> , 输入框里没法输入此类类型,所以导致输入的参数都revert, 但是只有输入0,1时候执行成功,就算输入1时候执行成功,结果也是0