02_Cairo1.0中的常量
此文章使用的Cairo编译器版本:1.0.0-alpha.6。因为Cairo正在快速更新,所以不同版本的语法会有些许不同,未来将会将文章内容更新到稳定版本。
基本用法
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;
^**^
版权声明
本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。