Struct 使用单元结构的真实示例是什么?
我读过关于结构的文档,但我不理解单元结构。它说: 单元结构最常用作标记。它们的大小为零字节,但与空枚举不同,它们可以实例化,从而使它们同构于单元类型Struct 使用单元结构的真实示例是什么?,struct,rust,Struct,Rust,我读过关于结构的文档,但我不理解单元结构。它说: 单元结构最常用作标记。它们的大小为零字节,但与空枚举不同,它们可以实例化,从而使它们同构于单元类型()。当您需要在某些东西上实现特性,但不需要在其中存储任何数据时,单元结构非常有用 他们仅以这段代码为例: 结构单元; 使用单元结构的真实示例是什么?标准库 Global 全局内存分配器是一个单元结构: pub-struct-Global; 它没有自己的状态(因为状态是全局的),但它实现了如下特性 std::fmt::Error 字符串格式错误是
()
。当您需要在某些东西上实现特性,但不需要在其中存储任何数据时,单元结构非常有用
他们仅以这段代码为例:
结构单元;
使用单元结构的真实示例是什么?标准库
Global
全局内存分配器是一个单元结构:
pub-struct-Global;
它没有自己的状态(因为状态是全局的),但它实现了如下特性
std::fmt::Error
字符串格式错误是一个单元结构:
pub结构错误;
它没有自己的状态,但它实现了如下特性
RangeFull
。
运算符的类型是一个单元结构:
pub-struct-RangeFull;
它没有自己的状态,但它实现了如下特性
板条箱
chrono::Utc
时区是一个单位结构:
pub结构Utc;
它没有自己的状态,但它实现了类似的特征,因此可以作为chrono-trait的
Date
和DateTime
时区的通用参数使用,chrono-trait是一个单位结构,没有自己的状态,但是实现了时区
特性,因此可用作日期
和日期时间
@Shepmaster的泛型参数抱歉,你说得对,我把零大小的类型与单位结构混淆了。请注意,std::alloc::AllocError
、std::sync::mpsc::RecvError
、和std::option::nonererror
都是单元结构,尽管其中两个只在夜间启用。@Aiden4是的,在为单元结构重新映射了标准库之后,我不得不对其进行筛选;我试着去抓那些比较稳定的,也比较可能遇到的。