Rust中带有括号和双括号的结构体

3

两者有什么不同?

struct Test();

struct Test(());

我知道结构体可以有元组(未命名字段)。但是,在这种情况下,(())表示什么我不确定?是一个具有一个空元组元素的结构体吗?

1个回答

7

这是一个只包含空元组的结构体?

完全正确。

严格来说,这些是不同的类型,但它们携带的信息量完全相同;即为零。

这个参数实际上没有什么作用,通常你不会创建像struct Test(())这样的类型,除非在泛型上下文中。例如:

struct Test<T>(T);

由于其他要求,T 最终变成了 ()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接