const and static
https://doc.rust-lang.org/book/const-and-static.html
定数を定義する方法。let
でもmut
つけなければ定数代わりになると思ったが、メモリ配置のされ方が違ったりするらしい。
また、同じスコープ内で同じ名前の定義を行う場合、let
の場合は可能だったが、const
、static
ではできなかった。
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