7
我有一個小項目,我想封裝一個struct的字段並使用實現的方法。Rust中的公共/私有結構
├── src
├── main.rs
├── predator
└── prey
├── cycle.rs
└── mod.rs
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()
}
}
我想離開Prey
爲私人。
main.rs
use prey::cycle::Prey;
mod prey;
fn main() {
let pr = Prey::new("Hamster".to_string());
println!("Hello, world! {}", pr.get_name());
}
我得到一個錯誤:
error: struct `Prey` is private
我知道,如果我struct Prey {}
之前把pub
,我會得到預期的結果。我將很感激解釋,如何,爲什麼不是和/或最佳實踐。
最後一段把一切都放在正確的地方,謝謝。 – 2014-12-02 00:22:47