Rust学习笔记_08——String
Rust学习笔记_09——模式匹配
Rust学习笔记_10——守卫
函数
文章目录
- 函数
- 1. 函数定义
- 2. 示例
- 3. 函数同日中的表达式和语句
- 4. 参数
- 4.1 必选参数
- 4.2 可选参数
- 4.3 参数默认值
- 5. 高阶函数
Rust语言中的函数是构成程序的基本模块,用于封装可重复使用的代码块。在Rust中,函数具有明确的结构和特性,这使得代码既强大又安全。
1. 函数定义
Rust中的函数使用fn
关键字进行定义。
fn function_name(parameters) -> return_type {// 函数体
}// fn:关键字,用于声明一个函数。
// function_name:函数的名称。
// parameters:函数的参数列表,使用圆括号括起来。如果没有参数,则可以为空。
// return_type:函数的返回类型。如果函数不返回任何值,则可以使用-> ()来表示空元组类型,即返回unit类型。
// 函数体:包含执行语句的代码块,用大括号{}括起来。
2. 示例
fn add(a: i32, b: i32) -> i32 {a + b
}fn main() {let result = add(5, 3);println!("The result is {}", result);
}
3. 函数同日中的表达式和语句
- 表达式:任何返回值的代码片段。在Rust中,如果函数体的最后一个表达式没有分号,它会被自动返回
- 语句:执行某种操作但不返回值的代码片段
4. 参数
4.1 必选参数
fn add(a: i32, b: i32) -> i32 {a + b
}fn main() {let result = add(5, 3); // 调用函数时,必须提供a和b两个参数println!("The result is {}", result);
}
4.2 可选参数
在Rust中,可选参数通常通过标准库中的Option
类型来实现。Option
是一个枚举类型,它有两个变体:Some(T)
和None
。当你想让一个参数在函数调用时是可选的时,你可以将该参数的类型设置为Option<T>
。
fn greet(name: Option<&str>) {match name {Some(n) => println!("Hello, {}!", n),None => println!("Hello, World!"),}
}fn main() {greet(Some("Alice")); // 提供可选参数greet(None); // 不提供可选参数
}
4.3 参数默认值
fn greet_with_default(name: Option<&str>) {let name = name.unwrap_or("Guest"); // 如果name为None,则使用"Guest"作为默认值println!("Hello, {}!", name);
}fn main() {greet_with_default(Some("Alice")); // 提供参数greet_with_default(None); // 不提供参数,使用默认值
}
5. 高阶函数
高阶函数是指接收函数作为参数或返回函数的函数。Rust提供了强大的支持来处理高阶函数
fn apply_operation(a: i32, b: i32, op: fn(i32, i32) -> i32) -> i32 {op(a, b)
}fn main() {let result = apply_operation(5, 3, |x, y| x + y);println!("The result is {}", result);
}