我试图将我的项目拆分成多个文件,但是我将问题导入到我的问题中,main.rs因为它说Column的字段是私有的,但我已将结构声明为public.
SRC/column.rs
pub struct Column {
name: String,
vec: Vec<i32>,
}
Run Code Online (Sandbox Code Playgroud)
SRC/main.rs
pub mod column;
fn main() {
let col = column::Column{name:"a".to_string(), vec:vec![1;10]};
println!("Hello, world!");
}
Run Code Online (Sandbox Code Playgroud)
货物建造
src/main.rs:4:15: 4:75 error: field `name` of struct `column::Column` is private
src/main.rs:4 let col = column::Column{name:"a".to_string(), vec:vec![1;10]};
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/main.rs:4:15: 4:75 error: field `vec` of struct `column::Column` is private
src/main.rs:4 let col = column::Column{name:"a".to_string(), vec:vec![1;10]};
Run Code Online (Sandbox Code Playgroud)
rco*_*rre 23
尝试将字段标记为公共字段:
pub struct Column {
pub name: String,
pub vec: Vec<i32>,
}
Run Code Online (Sandbox Code Playgroud)
标记Column为pub其他模块可以使用结构本身,但不一定是所有成员的标记.
fjh*_*fjh 13
您已将结构声明为公共结构,但不是字段.要使两个字段都公开,struct声明应如下所示:
pub struct Column {
pub name: String,
pub vec: Vec<i32>,
}
Run Code Online (Sandbox Code Playgroud)