上一篇文章中,我们介绍了 Rust 最基础的变量、运算、数据类型、注释等内容。
本文,我们就来进一步讲解函数、条件、循环等基础语法。
此前的文章中我们已经介绍过 Rust 的函数:
fn <函数名> ( <参数> ) { <函数体> }
Rust 的函数名命名规范是下划线式:
fn main() {
println!("Hello, world!");
another_function();
}
fn another_function() {
println!("Hello, runoob!");
}
Rust 中定义函数如果需要具备参数必须声明参数名称和类型:
fn main() {
another_function(5, 6);
}
fn another_function(x: i32, y: i32) {
println!("x 的值为 : {}", x);
println!("y 的值为 : {}", y);
}
函数参数的传入类型与声明类型必须严格匹配。
Rust 中可以在一个用 {} 包括的块里编写一个较为复杂的表达式,从而构成一个函数体:
fn main() {
let x = 5;
let y = {
let x = 3;
x + 1
};
println!("x 的值为 : {}", x);
println!("y 的值为 : {}", y);
}
打印出了:
x 的值为 : 5 y 的值为 : 4
在 Rust 中,函数定义可以嵌套:
fn main() {
fn five() -> i32 {
5
}
println!("five() 的值为: {}", five());
}
fn add(a: i32, b: i32) -> i32 {
return a + b;
}
和许多其他语言类似,Rust 的条件语句并不难理解:
fn main() {
let a = 12;
let b;
if a > 0 {
b = 1;
}
else if a < 0 {
b = -1;
}
else {
b = 0;
}
println!("b is {}", b);
}
总结起来就是这样:
if <condition> { block 1 } else { block 2 }
condition 必须是 bool 类型,也可以加括号括起来,但一般来说并不需要。
条件语句的语法中的 { block 1 } 和 { block 2 } 也可以用函数表达式:
fn main() {
let a = 3;
let number = if a > 0 { 1 } else { -1 };
println!("number 为 {}", number);
}
Rust 语法中的循环有三种:
fn main() {
let mut number = 1;
while number != 4 {
println!("{}", number);
number += 1;
}
println!("EXIT");
}
打印出了:
1 2 3 EXIT
rust 没有 C 语言中那种三元操作的 for 循环,rust 的 for 循环用于迭代一个元组或数组,类似于 php 中的 foreach 循环:
fn main() {
let a = [10, 20, 30, 40, 50];
for i in a.iter() {
println!("值为 : {}", i);
}
}
loop 循环就是无限循环:
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;
}
}
loop 循环可以通过 break 关键字类似于 return 一样使整个循环退出并给予外部一个返回值。这是一个十分巧妙的设计,因为 loop 这样的循环常被用来当作查找工具使用,如果找到了某个东西当然要将这个结果交出去:
fn main() {
let s = ['R', 'U', 'N', 'O', 'O', 'B'];
let mut i = 0;
let location = loop {
let ch = s[i];
if ch == 'O' {
break i;
}
i += 1;
};
println!(" \'O\' 的索引为 {}", location);
}
打印出了:
'0' 的索引为 3
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有