Namaran

Code daily. Without assist.

2026-08-22

cast.rs

fn main() {
    let x: i32 = 300;
    let y = x as u8;
    println!("{}", y);
}

これは何を出力するでしょうか?

Answer

44。整数型どうしのasキャストは、Rustでは「下位ビットを切り詰める(truncate)」という意味が仕様として保証されています(未定義動作ではありません)。300u8に収まらないので、300 mod 256 = 44になります。