$ cat main.rs
fn main() {
println!("{}", 1 >> 64);
}
$ rustc main.rs
error: bitshift exceeds the type's number of bits, #[deny(exceeding_bitshifts)] on by default
--> main.rs:2:20
|
2 | println!("{}", 1 >> 64);
| ^^^^^^^
error: aborting due to previous error
Et si on lui passe un nombre non constant qu'il peut pas prévoir, on a un crash.
$ cat main.rs
use std::env;
fn main() {
let args: Vec<_> = env::args().collect();
let n: i64 = args[1].parse().unwrap();
println!("{}", 1 as i64 >> n);
}
$ rustc main.rs
$ ./main 64
thread 'main' panicked at 'attempt to shift right with overflow', main.rs:6
note: Run with `RUST_BACKTRACE=1` for a backtrace.
# Quelques autres
Posté par anaseto . En réponse au journal Un décalage de 64 bits, ça vous inspire comment ?. Évalué à 6.
rustse démarque un peu : il n'en veut pas.Et si on lui passe un nombre non constant qu'il peut pas prévoir, on a un crash.