Rust 新手程序员/函数
外观
假设我们想再次对 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。这仅仅是对函数及其用途的粗略概述。