3. Basic data types in Rust
integers, signed and unsigned
floats
bool
char
std::mem::size_of
String and &str
arithmetic: only same types
casting with "as"
integer overflow
fn main ( ) {
let u : u64 = 123 ;
let i : i64 = -123 ;
println ! ( "{} {}" , u, i) ;
}
fn main ( ) {
let d : f64 = 1.23 ;
let f : f32 = 4.56 ;
println ! ( "{} {}" , d, f) ;
}
fn main ( ) {
let b1 : bool = true ;
let b2 : bool = false ;
println ! ( "{} {}" , b1, b2) ;
}
fn main ( ) {
let c : char = 'a' ;
println ! ( "{} {}" , c, std:: mem:: size_of:: <char >( ) ) ;
}
Machine dependent integer
fn main ( ) {
let i : usize = 123 ;
println ! ( "{} {}" , i, std:: mem:: size_of:: <usize >( ) ) ;
}
Strings and string slices
fn main ( ) {
let s : String = "abc" . to_string ( ) ;
let t = "xyz" ;
println ! ( "{} {}" , s, t) ;
}
fn main ( ) {
let a : u64 = 123 ;
let b : u64 = 456 ;
println ! ( "{} {} {}" , a, b, a+b) ;
}
fn main ( ) {
let a : u64 = 123 ;
let b : u32 = 456 ;
println ! ( "{} {} {}" , a, b, a + b as u64 ) ;
}
fn main ( ) {
let a : u8 = 123 ;
let b : u8 = 200 ;
println ! ( "{} {} {}" , a, b, a + b) ;
}
cargo run
cargo run --release