Tôi đang làm việc trên trình thông dịch shell cơ bản để tự làm quen với Rust. Trong khi làm việc trên bảng để lưu trữ các công việc bị treo trong trình bao, tôi đã bị kẹt ở thông báo lỗi trình biên dịch sau:Tuple struct constructor than phiền về các trường riêng tư
error: cannot invoke tuple struct constructor with private fields [E0450]
let jobs = job::JobsList(vec![]);
^~~~~~~~~~~~~
Điều này không rõ ràng với tư cách cá nhân ở đây. Như bạn có thể thấy bên dưới, cả hai cấu trúc đều được gắn thẻ với pub
trong tệp mô-đun của tôi. Vậy, nước sốt bí mật là gì?
mod job {
use std::fmt;
pub struct Job {
jid: isize,
pid: isize,
cmd: String,
}
pub struct JobsList(Vec<Job>);
}
fn main() {
let jobs = job::JobsList(vec![]);
}