Rust函数和注释

2021-11-08 09:34:49 浏览数 (1)

函数

在前面文章中,基本上都使用了main函数,而main函数是rust 程序的入口,声明函数的方式也很简单:

首先来看基本的没有参数的声明函数的方式:

代码语言:javascript复制
- 声明函数使用fn关键字
- 依照惯例,针对函数名和变量名Rust使用snake case命名规范,即所有的字母都是小写的,单词之间使用下划线分开,尽量见名知意。
- 调用函数的方式和其他语言差不多,就是函数名加小括号的方式
- 需要注意的是rust和一些其他的语言不同,不关心函数的定义顺序,只要在调用函数时,该函数已经声明了并且能够找的到即可
复制代码
代码语言:javascript复制
fn main() {
    println!("hello function");
    func();  // 在声明func函数之前就调用了,这在python中就是违反语法规则的,但是在rust中是可以的
}

fn func() {
    println!(" hello func")
}
复制代码

再来看带有参数的函数的声明方式:

代码语言:javascript复制
- 函数的参数有两种,分别是形参(形式参数,*parameters*)和实参(实际参数,*arguments*),简单来说,形参就是在函数定义时规定的在该函数调用时需要给定的参数,实参就是在函数调用时传递给函数的参数。

- 注意在声明有参函数时,有些语言(python)无需声明参数类型,但是在rust中,在函数签名里必须声明每个参数的类型,这样做的好处就是rust编译器在进行编译时就无需推断参数类型了,如果有多个参数,就是用逗号隔开每个参数。
复制代码
代码语言:javascript复制
fn main() {
    func(5, 'o'); // 5就是实参 argument
}

fn func(x: i32, y: char) {  // x就是形参 parameter
    println!("x is {}, y is {}", x, y);
}
复制代码

在介绍有返回值的函数之前,需要聊一下函数体中的语句和表达式,函数体是由一系列语句组成,然后可选的可以有一个表达式结束,Rust 是一个基于表达式的语言,语句是执行一些动作的指令,比如定义变量,定义和调用函数等,语句返回的是一个空的tuple, 而表达式会通过计算返回一个值,比如数字6就是一个表达式,6 1也是一个表达式。

代码语言:javascript复制
fn main() { // 函数定义是语句
    let x = 1;  // 声明变量是语句, 1是表达式
    // {}中包含的代码就是表达式
}
复制代码

最后来看一下函数的返回值,在rust中函数的返回值是在->符号后面声明函数返回值的类型,但是不可以为返回值命名,在rust中默认返回值就是函数体里面最后一个表达式的值,如果想要提前返回可以使用return关键字并指定返回值。

代码语言:javascript复制
fn func() -> i32 {
    5 // 注意这里不要加; 加上分号就是语句了,返回的值就是空元组
} 

fn main() {
    let x = func(); // 该函数的返回值默认就是最后一个表达式的值即5
    println!("x is {}", x);
}
复制代码

注释

rust中的注释同样分为单行注释和多行注释。

代码语言:javascript复制
// 我是单行注释
/* 我是多行注释
我也是多行注释*/
复制代码

0 人点赞