面试题答案
一键面试fn add(a: i32, b: i32) -> i32 {
a + b
}
fn main() {
// 声明函数指针类型
let func_ptr: fn(i32, i32) -> i32 = add;
// 使用函数指针调用函数
let result = func_ptr(2, 3);
println!("The result of addition is: {}", result);
// Rust确保内存安全,避免悬空指针等问题主要通过所有权系统
// 1. 所有权规则:每个值都有一个所有者,同一时刻一个值只能有一个所有者,所有者离开作用域时,值被释放
// 2. 借用:可以在不转移所有权的情况下使用值,但有规则确保不会产生悬空指针。例如,不能在借用的值超出其生命周期后再使用借用
// 3. 生命周期标注:在涉及泛型时,通过生命周期标注明确引用的生命周期关系,确保引用在有效的生命周期内使用
}