📅  最后修改于: 2023-12-03 14:55:00.100000             🧑  作者: Mango
在 Rust 中,如果要将数组作为参数传递给函数,可以使用以下语法:
fn func(arr: &[i32]) {
// 函数体中可以使用数组 arr
}
其中,arr: &[i32]
表示一个 i32
类型的数组的切片,也就是只读的,无法修改原数组的内容。
如果要传递一个可变的数组,可以使用以下语法:
fn func(arr: &mut [i32]) {
// 函数体中可以使用数组 arr,并对其进行修改
}
其中,arr: &mut [i32]
表示一个 i32
类型的数组的可变切片,可以在函数中修改原数组的内容。
下面是一个将数组作为参数传递给函数,并计算数组元素和的例子:
fn main() {
let arr = [1, 2, 3, 4, 5];
let sum = sum_array(&arr);
println!("Sum of array elements: {}", sum);
}
fn sum_array(arr: &[i32]) -> i32 {
let mut sum = 0;
for num in arr {
sum += num;
}
sum
}
可以看到,我们在 sum_array
函数中使用了数组切片 &[i32]
作为参数,并对数组元素进行求和,最后返回了求和结果。在 main
函数中,我们声明了一个数组 arr
,并调用 sum_array
函数来计算数组元素和,打印了结果。
当然,如果我们想要在函数内部修改数组元素,可以使用可变切片 &mut [i32]
,例如:
fn main() {
let mut arr = [1, 2, 3, 4, 5];
println!("Original array: {:?}", arr);
add_one_to_array(&mut arr);
println!("Modified array: {:?}", arr);
}
fn add_one_to_array(arr: &mut [i32]) {
for num in arr {
*num += 1; // 对数组元素加一
}
}
可以看到,我们在 add_one_to_array
函数中声明了一个可变切片 &mut [i32]
,并对数组中的每个元素加一。在 main
函数中,我们声明了一个 mut
变量 arr
,将其传递给 add_one_to_array
函数,打印原数组和修改后的数组。