1.const keyword.rs

/*
定义常量与定义普通变量的区别:
    1.关键字是const而不是let
    2.常量声明时候必须指明类型,编译器不会进行自动推导
    3.定义常量时变量的命名规则一般是全部大写(如NUM),非强制,但是会有warning。
    4.常量可以在任意作用域进行定义,而定义的常量贯穿整个程序的生命周期。在编译的时候,编译器会尽
      可能将其内联到代码中,所以在不同地方对同一常量的引用并不能保证引用到相同的内存地址。
    5.常量的赋值只能是常量表达式/数学表达式,也就是说必须是在编译期就能计算出的值,如果需要在运行时才能得出
      结果的值比如函数,则不能赋值给常量表达式。
   6.对于变量出现重复的定义(绑定)会发生变量遮盖,后面定义的变量会遮住前面定义的变量,而对于常量则是不允许
      出现重复的定义的。例如下面的代码就会报错:
      fn test_define_same_const_variable(){
        const NUM:i32=100;
        const NUM:f64=200.0;//error[E0428]: the name `NUM` is defined multiple times
    7.一个常量可以理解为是一个C语言中的#define,它有元数据开销但无运行时开销。
}
*/

fn main() {
    const num: i32 = 100;
    println!("Hello, world! --- {}", num);
}

 

Supongo que te gusta

Origin blog.csdn.net/liujiayu2/article/details/114364535
Recomendado
Clasificación