Syntax &引用;结构的字段“0”是私有的;发布结构属性出错

Syntax &引用;结构的字段“0”是私有的;发布结构属性出错,syntax,module,rust,tuples,access-modifiers,Syntax,Module,Rust,Tuples,Access Modifiers,发布结构属性上的“结构的字段0为私有”错误 在板条箱中 pub结构A(字符串,字符串); 发布结构C{ 酒吧b:Vec, } 大体上 …iter().map(| my_tuple:&A |(my_tuple.0.parse::().unwrap()); 当属性为pub、结构为pub且父结构为pub时,为什么会出现“struct is private”错误?您需要将元组类型的片段设置为Apub。大概是这样的: pub struct A(pub String, pub String) 这是否意

发布结构属性上的“结构的字段
0
为私有”错误

在板条箱中
pub结构A(字符串,字符串);
发布结构C{
酒吧b:Vec,
}
大体上
…iter().map(| my_tuple:&A |(my_tuple.0.parse::().unwrap());

当属性为pub、结构为pub且父结构为pub时,为什么会出现“struct is private”错误?

您需要将元组类型的片段设置为A
pub
。大概是这样的:

pub struct A(pub String, pub String)

这是否意味着在板条箱外无法访问结构中的信息?看起来箱子里有只虫子。结构没有impl。如果不将
pub
添加到元组的字段中,则在板条箱(和/或模块)外部将无法访问这些字段。只有当您确实想向结构添加函数时,才需要
impl
。听上去你不是板条箱的作者(你的问题还不清楚),板条箱作者可能有意让
A
对外界不透明,以防止用户依赖其内部表示。例如,它可能是一个“句柄”类型。在这种情况下,会有函数使用/返回
A
。没有更多的代码,这只是猜测。@Ben结构没有
impl
,这一事实并不意味着您不能访问字段。它们可以通过转换特征、索引特征、任何自定义特征甚至各自库中不相关的数据结构来访问。@Ben它是什么板条箱和类型?请回顾如何创建,然后回顾您的问题以包括它。我们无法说出代码中存在哪些板条箱、类型、特征、字段等。试着制造一些能再现你在网络上的错误的东西,或者你可以在一个全新的货运项目中再现它。也有。