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

巴菲特(Marcus Buffett)

我注意到,给定一个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

内核

它是使用trait实现Deref

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

指向结构的指针数组-为什么需要malloc(),为什么需要直接字段副本?

如何使用指向数组的指针访问结构数组中包含的结构中的字段?[C ++]

访问具有指向结构指针的结构中的整数

为什么在此堆栈实现中需要使用&传递指向结构的指针

为什么在 C++ 库崩溃应用程序中传递 java 作为指向结构的指针?

为什么在更改指向结构的指针后出现分段错误?

c-为什么指向结构的指针会使程序崩溃?

指向函数中结构元素字段数组的指针

为什么不能在没有强制转换的情况下指向指针,访问结构成员?

为什么此C代码不起作用?我无法使用指向结构的指针访问滚动编号

为什么我不能访问指向堆栈数组的指针?

为什么在函数中传递结构指针时总是得到 nil 字段值?

是否可以使用Rust中的指针访问结构的元素?

zig 结构、指针、字段访问

为什么将类型定义为指向C中未定义结构的指针有效?

Ctypes:获取指向结构字段的指针

为什么要显式引用指向结构数组的指针而不是仅仅通过指针?

通过指向结构的指针访问无符号整数的各个位,并在 C 中使用位字段

为什么使用指针访问的结构成员未更新?

为什么指向结构的指针表现得像一个结构数组

指向结构指针的指针中的内存分配

指向结构体中的指针的指针

理解指向结构的指针是指访问它的 c 中的指针成员

JNA如何在要传递给本机库的结构中填充指向结构的指针字段?

为什么返回指向本地定义变量的指针为null而不是指向堆栈中位置的指针?

从指向结构中其他变量的指针访问结构的第一个变量

尝试访问指针列表中的指针时出现 C 总线错误,该指针是指向指针的结构体

如何获得具有指向结构的指针的结构字段?

使用指针指向许多结构并访问结构数据成员