cairo学习中Option和条件语句

本文介绍了Rust中的Option枚举类型,展示了如何创建Some和None变量,并讨论了在处理Option<u8>时,为何输入0和1会导致正常执行而其他值会revert。重点分析了类型系统在防止错误中的作用。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值