相关疑难解决方法(0)

为什么要定义具有单元类型的单个私有字段的结构?

为什么ParseBoolError会有_priv字段:

pub struct ParseBoolError {
    _priv: (),
}
Run Code Online (Sandbox Code Playgroud)

我不认为该_priv领域被使用。

rust

38
推荐指数
1
解决办法
1546
查看次数

创建零大小结构的多种方法之间有什么区别?

我找到了四种不同的方法来创建struct没有数据:

(我将离开任意嵌套的元组,其中只包含()s和单变量enum声明,因为我理解为什么不应该使用这些元组).

四个声明之间有什么区别?我会将它们用于特定目的,还是可以互换?

这本书和参考书令人惊讶地无益.我发现这个接受RFC(clarified_adt_kinds),其进入的差异位,即单元结构也声明了一个恒定值D和元组结构也声明构造函数B()C(_: ()).但是,它没有提供关于使用哪个的设计指南.

我的猜测是,当我导出它们时pub,实际上可以在我的模块之外构造哪些类型存在差异,但我没有找到关于它的确凿文档.

struct encapsulation rust unit-type

11
推荐指数
2
解决办法
426
查看次数

什么是Rust惯用法来定义指向C透明指针的字段?

给定一个结构:

#[repr(C)]
pub struct User {
    pub name: *const c_char,
    pub age: u8,
    pub ctx: ??,
}
Run Code Online (Sandbox Code Playgroud)

该字段ctx只能由C代码操作;它是C结构的指针UserAttr

根据Rust FFI文档,该选择将定义为不透明类型pub enum UserAttr {}。但是,我发现Rust无法复制其值,例如,为什么对象的地址在方法之间会发生变化

在Rust中定义这样一个不透明指针的正确方法是什么,以使它的值(作为指针)跨方法复制?

rust

1
推荐指数
1
解决办法
1190
查看次数

标签 统计

rust ×3

encapsulation ×1

struct ×1

unit-type ×1