基本用法
use debug::PrintTrait; const ONE_HOUR_IN_SECONDS: felt252 = 3600; fn main(){ ONE_HOUR_IN_SECONDS.print(); }
使用 const 关键字,并且指明了常量的类型,最后给出了常量的值。
与不可变变量的区别
常量有以下性质:
- 不允许使用 mut 关键字
- 只能在全局范围内声明
- 只可以使用字面量给常量赋值
将常量声明在函数中试试
use debug::PrintTrait; fn main(){ const ONE_HOUR_IN_SECONDS: felt252 = 3600; ONE_HOUR_IN_SECONDS.print(); }
这样写会收到一大堆的错误🙅。
使用非字面量赋值也会报错
use debug::PrintTrait; const TEST: felt252 = 3600; const ONE_HOUR_IN_SECONDS: felt252 = TEST; fn main(){ ONE_HOUR_IN_SECONDS.print(); }
上述代码使用一个常量给另一个常量赋值,会收到如下错误
error: Only literal constants are currently supported. --> d_const.cairo:4:38 const ONE_HOUR_IN_SECONDS: felt252 = test; ^**^
评论前必须登录!
注册