在这里我们需要介绍Rust语法,一共分三部分,第二部分主要是一些如函数,编程中的循环等语法的介绍,着重介绍与C不一样的地方。
函数基本形式为:
fn <函数名> ( <参数> ) <函数体>
//如下定义
fn main() {
println!("Hello, world!");
test_function();
}
fn test_function() {
println!("I am tester!");
}
注意 :
1、Rust不在乎您在何处定义函数,只需在某个地方定义它们即可。
2、Rust函数名称命名风格:小写字母以下划线分割
Rust 中定义函数如果需要具备参数必须声明参数名称和类型:
fn main() {
println!("Hello, world!");
test_function();
}
fn test_function(x:i32,y:i32) {
println!("I am tester!");
println!("x 的值为 : {}", x);
println!("y 的值为 : {}", y);
}
Rust 函数体由一系列可以以表达式(Expression)结尾的语句(Statement)组成。
fn main() {
let x = 0;
let y = {
let x = 1;
x + 1
};
println!("x 的值为 : {}", x);
println!("y 的值为 : {}", y);
}
上述的 let y ={}这种格式这种表达式块叫做函数体表达式。
注意:x + 1 之后没有分号,否则它将变成一条语句!
Rust 函数声明返回值类型的方式:在参数声明之后用 -> 来声明函数返回值的类型(不是 : )
fn add(a: i32, b: i32) -> i32 {
return a + b;
}
但是 Rust 不支持自动返回值类型判断!如果没有明确声明函数返回值的类型,函数将被认为是"纯过程",不允许产生返回值,return 后面不能有返回值表达式。
注意:1、函数体表达式并不能等同于函数体,它不能使用 return 关键字。
2、函数支持嵌套。
fn main() {
let number = 3;
if number < 5 { //可以不需要(number<5)的括号
println!("条件为 true");
} else {
println!("条件为 false");
}
}
注:
fn main() {
let a = 3;
let number = if a > 0 { 1 } else { -1 }; //作用类似于三元运算符
println!("number 为 {}", number);
}
fn main() {
let mut number = 1;
while number != 4 {
println!("{}", number);
number += 1;
}
println!("ok");
}
or 循环是最常用的循环结构,常用来遍历一个线性数据结构(比如数组)。再Rust中是没有类似
for(int i =0;i<100;++i)这种形式,只能用while代替该功能,主要用法如下
fn main() {
let a = [100, 200, 300, 400, 500];
for i in a.iter() {
println!("值为 : {}", i);
}
}
Rust 语言有原生的无限循环结构- loop,然后用break退出循环,常用来做查找;
fn main() {
let s = ['R', 'U', 'N', 'O', 'O', 'B'];
let mut i = 0;
loop {
let ch = s[i];
if ch == 'O' {
break;
}
println!("\'{}\'", ch);
i += 1;
}
}
Rus语法还是比较简洁和简答的,吸收了其他语言优秀的部分。
–