本文介绍了为什么要定义具有单元类型的单个私有字段的结构?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为什么 ParseBoolError
有 _priv
字段:
pub struct ParseBoolError {
_priv: (),
}
我认为没有使用 _priv
字段.
I don't think that the _priv
field is used.
推荐答案
如果结构具有私有字段,则无法创建该结构的实例.这只是防止在用户代码中构造 ParseBoolError
的一个技巧.
You can't create an instance of a struct if it has private fields. This is just a trick to prevent ParseBoolError
from being constructed in user code.
这样做的一个原因是为了向前兼容.如果用户可以通过以下方式创建它:
One reason to do this is for forwards compatibility. If users could create it with:
let error = ParseBoolError {};
然后 ParseBoolError
的未来版本无法在不破坏代码的情况下添加字段.
then a future version of ParseBoolError
couldn't add fields without breaking that code.
这篇关于为什么要定义具有单元类型的单个私有字段的结构?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!