一、变量与常量
fn main() {
const MAX_POINTS:u32 = 100;
println!("常量max_points:{}",MAX_POINTS);
let x = 5;
println!("x is {}",x);
// shadowing 影藏x的不可变特性 变成一个变量
let x = x + 1;
let x = x * 2;
println!("x is {}",x);
let spaces = " ";
let spaces = spaces.len();
println!("{}",spaces)
}
二、数据类型 标量类型
fn main() {
let guess:u32 = "42".parse().expect("not a number");
println!("{}",guess)
}
三、数据类型 复合类型
fn main() {
let tup: (i32,f64,u8) = (500,6.4,1);
println!("{}, {}, {} ",tup.0,tup.1,tup.2);
}
let months = ["Jan","Feb"];
let a : [i32;5] = [1,2,3,4,5];
四、函数
fn main() {
println!("main function");
otherFunction(5,6)
}
fn otherFunction(x:i32, y:i32) {
println!("other function value:{} {}",x,y);
}
运行结果
类似于java的函数式编程
fn plus_five(x:i32) -> i32 {
return x + 5;
}
fn main() {
let x = plus_five(6);
println!("x :{}",x)
}
五、控制流 分支
fn main() {
let number = 3;
if number < 5 {
println!("small")
} else {
println!("big")
}
}
fn main() {
let condition = true;
let number = if condition {5} else {6};
println!("number:{}",number)
}
六、控制流 循环
fn main() {
let mut counter = 0;
let result = loop {
counter +=1;
if counter == 10 {
break counter * 2;
}
};
println!("result:{}",result)
}
fn main() {
let a = [10,20,30,40,50];
for element in a.iter() {
println!("element is {}",element)
}
}
for循环遍历,不会出现索引越界的问题
fn main() {
for number in (1..11).rev() {
println!("{}",number);
}
}