let arr =[12,13,89,56,14];let first = arr[0];let second = arr[1];println!("{}", first);// 12println!("{}", second);// 13}
2.无效的数组元素访问
访问超出数组末尾的数组元素
usestd::io;fnmain(){let arr =[12,16,45,13,19];println!("please enter an array index.");letmut index =String::new();io::stdin().read_line(&mut index).expect("Failed to read line");let index:usize= index
.trim().parse().expect("Index entered was not a number");let element = arr[index];println!("The value of the element at index {} is: {}",
index, element
);}
//语句和表达式let y =6;println!("{}", y);// 语句不会返回值// let x1 = (let y = 6);let y1 ={let x1 =5;//行的末尾没有分号,表达式末尾加分号,那么它就转换为语句,而语句不会返回值
x1 +1};println!("The value of y1 is:{}", y1);// 6
3.4带有返回值的函数
函数可以向调用它的代码返回值,但要在箭头(->)后声明它的类型
在Rust中,函数的返回值等同于函数体最后一个表达式的值
使用return关键字和指定值,可以从函数中提前返回;大部分函数隐式返回最后一个表达式
fnfive()->u32{5}fnmain(){let x =five();println!("The value of x is:{}“,x);}
谨慎使用分号
fnfive_plus(x:u32)->u32{//如果在X+1后面加分号,表示语句,没有返回值,将报错// x + 1;
x +1}fnmain(){let y =five_pluse(5);println!("{}",y);//6}
/*
这是一个做计算的方法
注意传值要求
*/fnplus_number(x:u32,y:i32)->u32{
x + y
}
4.3文档注释
Rust允许你使用特殊的文档注释来为函数、结构体、枚举等代码元素添加文档注释
文档注释以 /// 开始,通常紧跟在你要注释的代码元素之前
/// 这是一个文档注释fnmy_function(){}
5.控制流
根据条件是否为真来决定是否执行某些代码或根据条件是否为真来重复运行一段代码
Rust代码中最常见的用来控制执行流的结构是if表达式和循环
5.1if表达式
if 表达式允许根据条件执行不同的代码分支
fnmain(){let number =3;if number <5{println!("condition was true");}else{println!("condition was false");}}
需要注意的事代码中的条件必须是bool值
5.2使用else if处理多重条件
可将if 和 else组成的 else if 表达式来实现多重条件
fnmain(){let number =6;if number %4==0{println!("number is divisible by 4");}elseif number %3==0{println!("number is divisible by 3");}elseif number %2==0{println!("number is divisible by 2");}else{println!("number is not divisible by 4,3,or 2");}}
注意事项
使用过多的else if 表达式回事代码显得杂乱无章,如果超过一个else if 表达式,最好重构代码
使用rust强大的分支结构,match
5.3在let语句中使用if
if是一个表达式,可以在let语句的右侧使用它来将结果赋值给一个变量
fnmian(){let condition =true;let number =if condition {5}else{6};println!("The value of number is:{}",number);// 5}
前言:
3 solved of 7 A、B、C,太菜了,写B题的时候,常数设成1e5了,一直卡在Test 4,没想到一直提示我TLE,没有提示RE,导致我浪费了很多时间在B题上,最后时间太晚了交了TLE了一发睡觉去了
A-Make It Zero
…