跳转到内容

Rust 新手程序员/函数

100% developed
来自 Wikibooks,开放世界中的开放书籍

假设我们想再次对 y 进行 x2 + 5,但起始值为 7。它会是什么样子呢?

 fn main() {
     let mut x = 10;
     x *= x;
     x += 5;
     println!("{}", x);
     
     let mut y = 7;
     y *= y;
     y += 5;
     println!("{}", y);
 }

这将起作用,但假设我们想将其更改为对两者都进行 x2 + 8。这意味着我们必须在两个位置进行更改。在这里,这似乎不费太多功夫,但这种想要做同样事情,只是值略有不同的模式非常常见。因此,我们可以将其分离成一个函数。我们先取其中一个

 fn print_value() {
     let mut x = 10;
     x *= x;
     x += 5;
     println!("{}", x);
 }

这将起作用,除了函数的目的是接收具有不同值的输入。将输入放入函数的方法是将其放在 () 括号中。您输入输入的名称,类似于变量的名称,然后必须明确写出输入的类型。

 fn calc_value(input: i32) {
     let mut value = input;
     value *= value;
     value += 5;
     println!("{}", value);
 }

请注意,我们将 value 设置为 input 的值。这意味着由于我们使用了 'mut' 关键字,我们可以修改函数内部的值。或者,我们可以在 'input' 之前加上 mut,然后 input 将可以修改。接下来,我们可以将 main() 更改为

 fn main() {
     calc_value(10);
     calc_value(7);
 }

这意味着代码更容易修改和分离,从而更容易阅读和编辑。

另一种方法可能是,如果我们不想在函数内部打印,而是输出不同的值,以便 main() 函数可以将其打印出来或对其执行任何操作。这被称为返回,您使用 '-> type' 指定返回值。例如,该函数将返回一个整数,因此我们通过在 () 后面但 {} 之前添加 '-> i32' 来返回 i32。

 fn calc_value(input: i32) -> i32 {
     let mut value = input;
     value *= value;
     value += 5;
     return value;
 }

然后我们在 main() 函数中像这样打印值

 fn main() {
     let value1 = calc_value(10);
     let value2 = calc_value(7);
     println!("{}", value1);
     println!("{}", value2);
 }

这让我们可以做更多有趣的事情,比如将函数调用链接在一起。例如,我们可以将 main 更改为

 fn main() {
     let mut value = calc_value(10);
     value = calc_value(value);
     println!("{}", value);
 }

这将对 10 进行两次 x2 + 5 操作,因此我们得到 11030。这仅仅是对函数及其用途的粗略概述。

接下来:if 语句和布尔值

华夏公益教科书