And*_*aev 7 struct private rust
我有一个小项目,我想封装一个struct的字段并使用已实现的方法.
??? src
??? main.rs
??? predator
??? prey
??? cycle.rs
??? mod.rs
Run Code Online (Sandbox Code Playgroud)
cycle.rs
struct Prey {
name: String,
}
impl Prey {
pub fn new(n: String) -> Prey {
Prey { name: n }
}
pub fn get_name(&self) -> &str {
self.name.as_str()
}
}
Run Code Online (Sandbox Code Playgroud)
我想Prey私下离开.
main.rs
use prey::cycle::Prey;
mod prey;
fn main() {
let pr = Prey::new("Hamster".to_string());
println!("Hello, world! {}", pr.get_name());
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
error: struct `Prey` is private
Run Code Online (Sandbox Code Playgroud)
我知道,如果我pub以前struct Prey {},我会得到预期的结果.我将很感激解释,如何,为什么不和/或最佳实践.