mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-02-03 23:40:14 +08:00
RP
@Cubik65536 恭喜您,升级为 ⭐️⭐️⭐️ 贡献者! https://linux.cn/article-15855-1.html
This commit is contained in:
parent
63ad635181
commit
900c4b345c
@ -3,13 +3,17 @@
|
|||||||
[#]: author: "Pratham Patel https://itsfoss.com/author/pratham/"
|
[#]: author: "Pratham Patel https://itsfoss.com/author/pratham/"
|
||||||
[#]: collector: "lkxed"
|
[#]: collector: "lkxed"
|
||||||
[#]: translator: "Cubik65536"
|
[#]: translator: "Cubik65536"
|
||||||
[#]: reviewer: " "
|
[#]: reviewer: "wxy"
|
||||||
[#]: publisher: " "
|
[#]: publisher: "wxy"
|
||||||
[#]: url: " "
|
[#]: url: "https://linux.cn/article-15855-1.html"
|
||||||
|
|
||||||
Rust 基础系列 #5: Rust 中的函数
|
Rust 基础系列 #5: Rust 中的函数
|
||||||
======
|
======
|
||||||
|
|
||||||
|
![][0]
|
||||||
|
|
||||||
|
> 在这一章中,在实例的帮助下,学习如何使用函数并从中返回值。
|
||||||
|
|
||||||
就跟任何现代编程语言一样,Rust 也有函数。
|
就跟任何现代编程语言一样,Rust 也有函数。
|
||||||
|
|
||||||
你已经熟悉的函数是 `main` 函数。这个函数在程序启动时被调用。
|
你已经熟悉的函数是 `main` 函数。这个函数在程序启动时被调用。
|
||||||
@ -30,7 +34,7 @@ fn function_name() {
|
|||||||
function_name();
|
function_name();
|
||||||
```
|
```
|
||||||
|
|
||||||
来让我们看一个简单的函数,它将字符串 "Hi there!" 打印到标准输出。
|
来让我们看一个简单的函数,它将字符串 `"Hi there!"` 打印到标准输出。
|
||||||
|
|
||||||
```
|
```
|
||||||
fn main() {
|
fn main() {
|
||||||
@ -50,7 +54,7 @@ fn greet() {
|
|||||||
Hi there!
|
Hi there!
|
||||||
```
|
```
|
||||||
|
|
||||||
这挺简单的。让我们把它提升到下一个级别。让我们创建一个接受参数并返回值的函数。两者都不是互斥的,也不是包容的。
|
这挺简单的。让我们把它提升到下一个级别。让我们创建一个接受参数并返回值的函数。有没有参数和有没有返回值这两者之间无关。
|
||||||
|
|
||||||
### 使用函数接受参数
|
### 使用函数接受参数
|
||||||
|
|
||||||
@ -81,7 +85,7 @@ fn main() {
|
|||||||
|
|
||||||
fn food(theplas: i32, rotis: i32) {
|
fn food(theplas: i32, rotis: i32) {
|
||||||
println!(
|
println!(
|
||||||
"我饿了... 我需要 {} 个葫芦巴叶饼和 {} 个罗提!",
|
"我饿了... 我需要 {} 个葫芦巴叶饼和 {} 个罗提!",
|
||||||
theplas, rotis
|
theplas, rotis
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -89,12 +93,12 @@ fn food(theplas: i32, rotis: i32) {
|
|||||||
|
|
||||||
在第 5 行,我声明了一个名为 `food` 的函数。这个函数接受 2 个参数:`theplas` 和 `rotis`(印度食物的名字)。然后我打印了这些变量的内容。
|
在第 5 行,我声明了一个名为 `food` 的函数。这个函数接受 2 个参数:`theplas` 和 `rotis`(印度食物的名字)。然后我打印了这些变量的内容。
|
||||||
|
|
||||||
对于 `main` 函数,我使用参数 '2' 和 '4' 调用 `food` 函数。这意味着 `theplas` 被赋值为 '2',`rotis` 被赋值为 '4'。
|
对于 `main` 函数,我使用参数 `2` 和 `4` 调用 `food` 函数。这意味着 `theplas` 被赋值为 `2`,`rotis` 被赋值为 `4`。
|
||||||
|
|
||||||
来让我们看一下程序的输出:
|
来让我们看一下程序的输出:
|
||||||
|
|
||||||
```
|
```
|
||||||
我饿了... 我需要 2 个葫芦巴叶饼和 4 个罗提!
|
我饿了... 我需要 2 个葫芦巴叶饼和 4 个罗提!
|
||||||
```
|
```
|
||||||
|
|
||||||
我现在真的饿了... 😋
|
我现在真的饿了... 😋
|
||||||
@ -146,7 +150,7 @@ fn main() {
|
|||||||
|
|
||||||
第 8 行的代码计算出了一个值。它是 `a * 10`(`873 * 10`),并计算出了 `8730`。因为这一行没有以分号结尾,所以这是一个表达式。
|
第 8 行的代码计算出了一个值。它是 `a * 10`(`873 * 10`),并计算出了 `8730`。因为这一行没有以分号结尾,所以这是一个表达式。
|
||||||
|
|
||||||
> 📋 使用表达式是从代码块中返回某些东西的一种方便的方法。因此,当返回一个值时,它是 `return` 关键字的替代方案。表达式不仅仅用于从函数中“返回”一个值。正如你刚刚看到的,`a * 10` 的值是从内部作用域“返回”到外部作用域,并赋值给变量 `b`。一个简单的作用域不是一个函数,但表达式的值仍然被“返回”了。
|
> 📋 使用表达式是从代码块中返回某些东西的一种方便的方法。因此,当返回一个值时,它是 `return` 关键字的替代方案。表达式不仅仅用于从函数中 “返回” 一个值。正如你刚刚看到的,`a * 10` 的值是从内部作用域 “返回” 到外部作用域,并赋值给变量 `b`。一个简单的作用域不是一个函数,但表达式的值仍然被 “返回” 了。
|
||||||
|
|
||||||
#### 示例:购买腐烂的水果
|
#### 示例:购买腐烂的水果
|
||||||
|
|
||||||
@ -228,13 +232,15 @@ fn tuple_func() -> (f64, f64, f64, f64) {
|
|||||||
|
|
||||||
### 总结
|
### 总结
|
||||||
|
|
||||||
本文介绍了 Rust 编程语言中的函数。这些是函数的“类型”:
|
本文介绍了 Rust 编程语言中的函数。这些是函数的 “类型”:
|
||||||
|
|
||||||
- 不接受任何参数也不返回任何值的函数
|
- 不接受任何参数也不返回任何值的函数
|
||||||
- 接收一个或多个参数的函数
|
- 接收一个或多个参数的函数
|
||||||
- 给调用者返回一个或多个值的函数
|
- 给调用者返回一个或多个值的函数
|
||||||
|
|
||||||
你知道接下来是什么吗?Rust 中的条件语句,也就是 if-else。请继续关注并享受在 Linux 中国学习 Rust 的过程。
|
你知道接下来是什么吗?Rust 中的条件语句,也就是 if-else。请继续关注并享受学习 Rust 的过程。
|
||||||
|
|
||||||
|
*(题图:MJ/5a07503b-c691-4276-83b2-bb42f5fda347)*
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -243,10 +249,11 @@ via: https://itsfoss.com/rust-functions/
|
|||||||
作者:[Pratham Patel][a]
|
作者:[Pratham Patel][a]
|
||||||
选题:[lkxed][b]
|
选题:[lkxed][b]
|
||||||
译者:[Cubik65536](https://github.com/Cubik65536)
|
译者:[Cubik65536](https://github.com/Cubik65536)
|
||||||
校对:[校对者ID](https://github.com/校对者ID)
|
校对:[wxy](https://github.com/wxy)
|
||||||
|
|
||||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||||
|
|
||||||
[a]: https://itsfoss.com/author/pratham/
|
[a]: https://itsfoss.com/author/pratham/
|
||||||
[b]: https://github.com/lkxed/
|
[b]: https://github.com/lkxed/
|
||||||
[1]: https://linux.cn/article-15837-1.html
|
[1]: https://linux.cn/article-15837-1.html
|
||||||
|
[0]: https://img.linux.net.cn/data/attachment/album/202305/29/150550h23qbhahwzb66hb1.jpg
|
Loading…
Reference in New Issue
Block a user