Tôi có một dự án nhỏ và tôi muốn đóng gói các trường của cấu trúc và sử dụng các phương thức đã triển khai.Cấu trúc công khai/riêng tư trong 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()
}
}
Tôi muốn để lại Prey
như tư nhân.
main.rs
use prey::cycle::Prey;
mod prey;
fn main() {
let pr = Prey::new("Hamster".to_string());
println!("Hello, world! {}", pr.get_name());
}
tôi nhận được một lỗi:
error: struct `Prey` is private
Tôi biết rằng nếu tôi đặt pub
trước struct Prey {}
, tôi sẽ nhận được kết quả mong đợi. Tôi sẽ biết ơn vì một lời giải thích, làm thế nào, tại sao không và/hoặc thực hành tốt nhất.
đoạn cuối cùng đặt mọi thứ vào đúng vị trí, cảm ơn. –