//rust 中的数据类型主要分为scalar and compound 标量与复合类型
//单一值的为 scalar, 多值的为compound
fn main(){
//数据类型转换, 接收变量必须显示指定数据类型: 变量名后面 :数字类型
let guess: u32 = "42".parse().expect("Not a number!");
println!("The value of guess is {}", guess);
// Numeric Operations
let sum = 5 + 10;
let difference = 95.5 - 4.3;
let product = 4 * 30;
let quotient = 56.7 / 32.2;
let remainder = 43 % 5; // 取模运算
println!("The value of sum is {}", sum);
println!("The value of difference is {}", difference);
println!("The value of product is {}", product);
println!("The value of quotient is {}", quotient);
println!("The value of remainder is {}", remainder);
//character
let c = 'z';
let z = 'Z';
let heart_eyed_cat = '🐷';
println!("The value of c is {}", c);
println!("The value of z is {}", z);
println!("The value of heart_eyed_cat is {}", heart_eyed_cat);
//compound type
//tuple,fixed length can be different data type
let tup = (500,6.4,1);
let (e,f,g) = tup; //解构tuple里的值至单个变量
println!("The value of f is: {}", f);
println!("The value of e is: {}", tup.0); //用 点号 . 加索引(从0开始)访问tuple中的值
println!("The value of g is: {}", tup.2);
//Array,fixed length must be same data type
let months = ["January", "February", "March", "April",
"May", "June", "July", "August", "September", "October", "November", "December"];
println!("The value of months is {:?}", months);
let aaa: [i32; 5] = [1,2,3,4,5];//显示声明数组中元素的数据类型及数组长度并用分号分开
println!("The value of aaa is {:?}", aaa);
let bbb = [3;5];//指定数组中每个元素的值为3,并设定数组的长度为5
println!("The value of bbb is {:?}", bbb);
println!("The first value of aaa is {}", aaa[0]);//访问数组
println!("The second value of bbb is {}", bbb[1]);
//rust中越界访问数组时,在runtime会出现错误
}