gpt4 book ai didi

pointers - 为什么在 Rust 中访问指向结构的指针上的字段?

转载 作者:行者123 更新时间:2023-11-29 08:00:27 24 4
gpt4 key购买 nike

我注意到,给定一个 P<SomeStruct> , 访问 SomeStruct 的字段直接在指针上似乎有效,我不确定为什么会这样。例如,此代码按预期编译和工作(打印“1234”):

#![feature(rustc_private)]

extern crate syntax;
use syntax::ptr::P;

struct Baz {
id: String,
}

fn foo() {
let mut struct_pointer: P<Baz> = P(Baz {
id: "1234".to_string(),
});
println!("{}", struct_pointer.id);
}

什么语言功能允许我访问 id struct_pointer 上的字段捆绑?取消引用?强制?有什么方法可以通过查看 P 的文档来判断这种事情是否可行? ?

最佳答案

implemented使用 the Deref trait .

在 Rust 中,. 会在需要时自动取消引用,因此编译器可以将 foo.bar 解释为 (*foo).bar

关于pointers - 为什么在 Rust 中访问指向结构的指针上的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44117951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com