「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战」。
函数
根据咱们以前的rust 例子
fn main() {
println!("Hello, world!");
}
- 声明函数使用fn 关键字
- Rust 使用的是 snake code 命名规范(蛇皮命名法)
- 单词小写使用_分割
fn main() { println!("Hello, world!"); other_fn(); //调用 } //定义一个函数,函数声明不分前后 fn other_fn(){ println!("other_fn!"); }
函数的参数
- parametes(形参),arguments(实参)
- 在声明函数的时候,必须声明每个参数的类型
fn main() {
other_fn(1,2);
}
fn other_fn(x:i32,y:i32){
println!("x=>{},y=>{}",x,y);
}
函数的返回值
- 在 -> 符号后面声明函数返回值类型,但是不能返回值得命名
- 在Rust 中,返回值是函数体最后一个表达式,可以省略return (比较常见)
- 要是想提前返回,需要使用return 关键字,并指定一个值
fn main() {
let a = 10;
println!("add_one=>{}", add_one(a));
println!("add_five=>{}", add_five(a))
}
fn add_one(x: i32) -> i32 {
x + 1
}
fn add_five(x: i32) -> i32 {
x + 5
}
运行结果
控制流
总体来说比较简单
if 表达式
- 根据条件执行不同代码
- 这个条件必须是bool类型
- 与条件关联的代码叫做分支
fn main() {
let num = 10;
if num < 10 {
println!("小于10")
} else if num > 10 {
println!("大于10")
} else {
println!("等于10")
}
}
运行结果
使用else if 处理多重事件
上面的代码例子 只使用了一个else if 要判断条件很多,最好使用match
fn main() {
let number = 13;
println!("Tell me about {}", number);
match number {
1 => println!("One!"),
2 | 3 | 5 | 7 | 11 => println!("This is a prime"),
13..=19 => println!("A teen"),
_ => println!("Ain't special"),
}
}
在let 语句中使用if
fn main() {
let flag = true;
let num = if flag {5} else{7};
println!("num=>{}",num)
}
循环
rust 提供了三种循环方式 loop;while;for
loop 循环
反复执行一块代码,直到stop,需要手动break
fn main() {
let mut counter = 0;
let result:i32= loop {
counter+=1;
if counter ==10 {
break counter;
}
};
println!("result=>{}",result)
}
while 条件循环
每次执行之前都判断一次条件
fn main() {
let mut count =3;
while count !=0 {
println!("{}!",count);
count = count - 1;
}
println!("结束")
}
for 循环遍历
- 可以针对集合中的每个元素来执行一些代码
fn main() {
let a =[10,20,30,40,50];
for item in a.iter(){
println!("value => {}",item)
}
}
Range
- 指定开始数字和技术数字,Range 可以生成他们之间的数字 (包头不包尾)
- rev 可以翻转 Range
fn main() {
for elem in (1..4).rev() {
println!("{}",elem)
}
}