Ich habe ein kleines Projekt, und ich möchte die Felder einer Struktur kapseln und implementierte Methoden verwenden.Öffentlich/Private Struktur in 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()
}
}
Ich mag würde Prey
als privat verlassen.
main.rs
use prey::cycle::Prey;
mod prey;
fn main() {
let pr = Prey::new("Hamster".to_string());
println!("Hello, world! {}", pr.get_name());
}
Ich erhalte eine Fehlermeldung:
error: struct `Prey` is private
Ich weiß, dass, wenn ich pub
vor struct Prey {}
setzen, ich werde das erwartete Ergebnis. Ich werde dankbar sein für eine Erklärung, wie, warum nicht und/oder Best Practices.
der letzte Absatz legte alles auf den richtigen Platz, danke. –