面试题答案
一键面试-
在函数内修改可变字段:
- 函数参数应使用可变引用。假设结构体定义如下:
struct MyStruct { mutable_field: i32, }
- 函数可以这样写:
fn modify_struct(mut s: &mut MyStruct) { s.mutable_field += 1; }
在这个函数中,
mut s
表示s
是一个可变引用,这样就可以安全地修改MyStruct
结构体的mutable_field
字段,遵循Rust的所有权和借用规则。 -
函数返回修改后的结构体:
- 函数签名和实现如下:
struct MyStruct { mutable_field: i32, } fn modify_and_return_struct(mut s: MyStruct) -> MyStruct { s.mutable_field += 1; s }
在这个函数中,参数
s
采用值传递,这样函数获得了结构体的所有权。在函数内部修改mutable_field
后,直接返回修改后的结构体。这种方式确保了内存安全,因为Rust的所有权系统会正确管理结构体的生命周期和内存释放。