面试题答案
一键面试fn sum_numbers(nums: &[i32]) -> i32 {
nums.iter().sum()
}
fn main() {
let numbers = vec![1, 2, 3, 4, 5];
let result = sum_numbers(&numbers);
println!("Sum: {}", result);
// 也可以直接传递数组字面量
let result2 = sum_numbers(&[10, 20, 30]);
println!("Sum2: {}", result2);
}
在上述代码中:
- 函数定义:
sum_numbers
函数接受一个&[i32]
类型的参数,这是一个切片,它可以表示任意长度的i32
数组。函数内部使用iter().sum()
方法计算切片中所有元素的总和。 - 调用函数传递可变数量参数:
- 可以先创建一个
Vec<i32>
向量,然后将其借用为切片传递给函数,如sum_numbers(&numbers)
。 - 也可以直接传递数组字面量,如
sum_numbers(&[10, 20, 30])
,数组字面量会自动被转换为切片。
- 可以先创建一个