2026-08-22
cast.rs
fn main() {
let x: i32 = 300;
let y = x as u8;
println!("{}", y);
}
これは何を出力するでしょうか?
Answer
44。整数型どうしのasキャストは、Rustでは「下位ビットを切り詰める(truncate)」という意味が仕様として保証されています(未定義動作ではありません)。300はu8に収まらないので、300 mod 256 = 44になります。