函数
-
main
函数,是很多程序的入口 -
fn
关键字 用来声明新函数 -
pub
关键字 用来确定声明的函数是否可被外部引用 - 函数表达式
pub fn lambda() {
let x = 5;
println!("value x is :{}", x);
let y = {
let x = 32;
x + 1 // 此处注意不能加;结尾
};
println!("y is {}", y)
}
- 具有返回值的函数
pub fn five(x: i8) -> i32 {
return x as i32;
}
- 可以隐式返回
pub fn six(x:i32) ->i64{
x as i64 // 不能加分号
}
注释
//
控制流
if
表达式
-
if
用来判断条件
fn main(){
let num = 3;
if num < 3 {
println!("small")
} else {
println!("big")
}
}
- 所有的
if
表达式都以if
开头,其后跟一个条件 - 条件必须是一个
bool
值 - 多条件的时候可以使用
else if
- 当然这样多层嵌套不是很好看 后面会介绍
march
- 在
let
中使用if
pub fn let_if_fun() {
let condition = true;
let b = if condition { 5 } else { 8 };
println!("this true number is :{}", b)
}
循环
rust提供了多种循环
loop
while
for
loop
- 需要设置条件 跳出,否则会无限循环
pub fn loop_fun() {
let mut num = 1;
loop {
num = num + 1;
println!("loop num :{}", num);
if num > 5 {
break;
}
}
}
while
- 先设置条件,如果条件为
true
则继续循环
pub fn while_fun() {
let mut num = 3;
while num != 0 {
println!("while num:{}", num);
num -= 1;
}
}
for
for in
pub fn for_in_fun() {
let arr = [2, 3, 4, 5, 6];
// 再循环arr 数组时候需要 .iter() 返回可迭代的切片
for item in arr.iter().rev() {
println!("value in arr:{}", item)
}
}
pub fn for_in_rev_fun() {
// 反向迭代,包前不包后
for number in (1..4).rev() {
println!("rev for number:{}", number)
}
// 尝试
// range类型是可以直接遍历的
let tup_num = 1..8;
for item in tup_num {
println!("item:{}", item)
}
}