此问题在此处已有答案:
field of struct is private when importing module(2个答案)
10天前关闭。
我想把一个值放在结构中,但是我得到了一个错误,因为它是私有的。我该怎么解决这个问题呢?我把它设置为pub,但是我得到了这个错误。
第一个
此问题在此处已有答案:
field of struct is private when importing module(2个答案)
10天前关闭。
我想把一个值放在结构中,但是我得到了一个错误,因为它是私有的。我该怎么解决这个问题呢?我把它设置为pub,但是我得到了这个错误。
第一个
1条答案
按热度按时间fjaof16o1#
你的
struct
和were不是同一个模块的一部分,所以声明struct pub是不够的,你必须为字段授予可见性。这个程序可以很好地编译:
但这不会:
如果你将pub添加到结构体而不是字段中,那么现在可以从main中看到该结构体,但看不到它的内容.如果你将pub添加到字段中,那么你可以从main中创建该结构体,也可以访问它的字段:
如果只生成结构pub,而不生成字段,则可以从main中查看和使用结构,同时防止直接访问其字段:
如果您尝试直接从main(如
Todo {.....}
中)而不是使用new()
来建立结构,就会发生错误。如果您尝试打印t.content
而不是使用content()
函式,就会发生错误。