const and static

https://doc.rust-lang.org/book/const-and-static.html

定数を定義する方法。letでもmutつけなければ定数代わりになると思ったが、メモリ配置のされ方が違ったりするらしい。 また、同じスコープ内で同じ名前の定義を行う場合、letの場合は可能だったが、conststaticではできなかった。

const N: i32 = 4;
static M: i32 = 4;
static mut L: i32 = 4;

fn main() {
    const N: i32 = 5;
    // const N: i32 = 6; // error
    static M: i32 = 5;
    // static M: i32 = 6; // error
    static mut L: i32 = 5;
    // static mut L: i32 = 6; // error
    unsafe {
        L += 1;
        println!("{}, {}, {}", N, M, L);
    }
}
$ cargo run
    Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs
     Running `target/debug/4_26_const_and_static`
5, 5, 6