• 作者:老汪软件技巧
  • 发表时间:2024-11-20 10:02
  • 浏览量:

前言

这是 【前端学rust】 系列文章的第四篇文章了。其他内容如下:

【前端学rust】花式println和注释【前端学rust】基础数据类型【前端学rust】复合数据类型

这篇文章我们学习rust的函数。rust 中的函数是组织代码的基本方式之一,用于封装可重用的代码段。

函数定义

在 rust 中,定义一个函数使用 fn 关键字,后面跟着函数名称、参数列表和返回类型(如果有)。

fn function_name(parameter1: Type1, parameter2: Type2) -> ReturnType {
    // 函数体
}

在 rust 代码中的函数和变量名使用下划线命名法(snake case,即为蛇形命名法)规范风格。在下划线命名法中,所有字母都是小写并使用下划线分隔单词。

fn say_name(name: string) {
    println!("{:?}", name);
}

函数参数

函数也可以被定义为拥有参数(parameter),参数是特殊变量,是函数签名的一部分。当函数拥有参数形参(parameter)时,可以为这些参数提供具体的值实参(argument)。每个参数必须声明其类型,多个参数之间使用 , 分割。

fn main() {
  let sum = add(2, 3);
  println!("sum = {}", sum);
}
fn add(a: i32, b: i32) -> i32 {
  return a + b;
}

函数返回值

函数可以向调用它的代码返回值。如果函数返回值,使用->关键字指定返回类型;如果没有返回值,则不需要指定返回类型,或者可以使用-> ()。在 rust 中,函数的返回值等同于函数体最后一个表达式的值。使用return关键字和指定值,可以从函数中提前返回;但大部分函数隐式返回最后一个表达式。

fn main() {
  let sum = add_one(2);
  println!("sum = {}", sum);
}
fn add_one(a: i32) {
  a + 1
}

这里未指定返回值类型,默认会返回的是 () ,因此这里会报错。修改一下明确返回值类型。

fn main() {
  let sum = add_one(2);
  println!("sum = {}", sum);
}
fn add_one(a: i32) -> i32 {
  a + 1
}

前端常用函数__前端函数式编程

函数不返回值可以不写或者写 () ,返回多个值也可以使用 ()。

// 没有返回值
fn print_message() {
    println!("Hello, world!");
}
// 返回多个值
fn divide(a: i32, b: i32) -> (i32, i32) {
    (a / b, a % b)
}
fn main() {
    let (quotient, remainder) = divide(10, 3);
    println!("Quotient: {}, Remainder: {}", quotient, remainder); // 输出: Quotient: 3, Remainder: 1
}

语句(Statements)和表达式(Expressions)

在 rust 中,语句(Statement)和表达式(Expression)是编程语言的基本元素。理解和区分语句和表达式是非常重要的,因为它们影响着程序的行为和结构。两者的主要区别如下:

语句(Statements)

语句是用来完成某种操作的一行或多行代码,但不产生可以直接使用的值。例如,赋值语句、循环语句、条件判断语句等都属于语句。

let a = 1; // 这是一条赋值语句
if a == 1 { // 这是一条条件语句
    println!("a is one");
}

表达式(Expressions)

表达式则是用来计算某个值的代码片段。每个表达式都会有一个最终的值,即使这个值可能是元组类型 (()),表示无意义的值。表达式通常出现在需要值的地方,比如函数返回值、变量初始化等。

let b = 2 + 3; // 整个表达式 "2 + 3" 计算出一个值 5 并赋给变量 b
let c = if true { 6 } else { 7 }; // 这里 if 表达式也作为一个整体计算出一个值

在函数内部,语句和表达式经常结合在一起使用。你可以看到既有语句也有表达式。

fn example_function(a: bool) -> i32 {
    let mut result = 0;
    
    if a {
        result += 1; // 这里是语句
    }
    
    result * 2 // 这里是表达式,整个函数的返回值
}

在如上的例子中,result += 1是一个语句,因为它只是修改了result的值而没有返回新的值;而result * 2则是一个表达式,它计算了一个新值并将其作为函数的返回值。

总结

在 rust 中,函数不仅可以提高代码的复用性和模块化程度,还能使程序更加清晰易懂。因此理解和使用函数十分重要。


上一条查看详情 +vercel是如何做微前端迁移的
下一条 查看详情 +没有了