- 前言
- 一、Rust 注释的方式
- 二、Rust 函数
- 1、函数的四大格式
- 1.1、无参无返
- 1.2、无参有返
- 1.3、有参无返
- 1.4、有参有返
- 2、函数体的语句和表达式
- 三、Rust 条件语句
- 四、Rust 循环语句
- 1、有关while循环
- 2、for 的迭代循环
- 3、loop 循环
书接上文,本篇博客讲解Rust语言的注释、函数、条件和循环语句的特点,我将以区别于C/C++的视角来分享,感受语言的渗透与区分。想要学好Rust必须打下好的基础,快来从这些基础语法中感悟与提升吧!
一、Rust 注释的方式- 第一种注释方式:
//
后跟注释内容 - 第二种注释方式:
/*
里面为的内容都是注释内容*/
- 用于文档的注释:
- 在 Rust 中使用 // 可以使其之后到第一个换行符的内容变成注释。
- 在这种规则下,三个反斜杠 /// 依然是合法的注释开始。所以 Rust 可以用 /// 作为说明文档注释的开头:
- 这时候把鼠标放在sum函数上面就会出现优美的函数提示:
注:Cargo 具有 cargo doc
功能,开发者可以通过这个命令将工程中的说明注释转换成 HTML 格式的说明文档:可以在该项目下的target目录下找到doc文件,进入后可看到html文件。
我们在C/C++里都知道一个函数包含:返回值类型、函数名、参数列表和函数体,那么在Rust里面又有什么不一样的地方呢?
1、函数的四大格式 1.1、无参无返语法:
fn 函数名() {}
其中 Rust 函数名称的命名风格是小写字母以下划线分割,例如:
fn another_function() {
println!("Hello, runoob!");
}
1.2、无参有返
语法:
fn 函数名() -> 返回值类型 {}
例如:
fn five() -> i32 {
5
}
//此时输入five(),结果就是5
在此例子中已经显示了 Rust 函数声明返回值类型的方式:在参数声明之后用 ->
来声明函数返回值的类型,而且不用加 return
也可以
语法:
fn 函数名(x:类型,y:类型) {}
例如:
fn another_function(x: i32, y: i32) {
println!("x 的值为 : {}", x);
println!("y 的值为 : {}", y);
}
Rust 中定义函数如果需要具备参数必须声明参数名称和类型
1.4、有参有返语法:
fn 函数名(x:类型,y:类型) ->返回值类型 {}
例如:
fn add(a: i32, b: i32) -> i32 {
return a + b;
}
在函数体中,随时都可以以 return
关键字结束函数运行并返回一个类型合适的值。 但是 Rust 不支持自动返回值类型判断! 如果没有明确声明函数返回值的类型,函数将被认为是"纯过程",不允许产生返回值。
Rust 函数体由一系列可以以表达式(Expression)结尾的语句(Statement)组成。到目前为止,我们仅见到了没有以表达式结尾的函数,但已经将表达式用作语句的一部分。
- 语句是执行某些操作且没有返回值的步骤。例如:
let a = 6;
- 表达式有计算步骤且有返回值。以下是表达式(假设出现的标识符已经被定义):
a = 7
b + 2
c*(a + b)
- Rust 中可以在一个用 {} 包括的块里编写一个较为复杂的表达式:
fn main() {
let x = 5;
let y = {
let x = 3;
x + 1
};
println!("x 的值为 : {}", x);
println!("y 的值为 : {}", y);
}
//运行结果:x为5,y为4。
很显然,这段程序中包含了一个表达式块,而且在块中可以使用函数语句。 最后一个步骤是表达式,此表达式的结果值是整个表达式块所代表的值。这种表达式块叫做函数体表达式。 注意: x+1
后不能加分号,否则将变为一条语句。
先来看代码:
fn main() {
let num = 3;
if num 0 { 1 } else { -1 };
println!("number 为 {}", number);
}
注意:两个函数体表达式的类型必须一样!且必须有一个 else 及其后的表达式块。
四、Rust 循环语句Rust 除了灵活的条件语句以外,循环结构的设计也十分成熟。
1、有关while循环- Rust 里也有
while
循环语句,与条件语句类似,循环的条件也可以不加小括号。 - Rust 里没有
do while
循环,这是因为do
在Rust 语言里规定为保留字,后续版本或许会用到。 - 在 C 语言中 for 循环使用三元语句控制循环,但是 Rust 中没有这种用法,需要用 while 循环来代替:
let mut i = 0;
while i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?