Próbuję generować liczby pierwsze. Kod musi przechowywać wszystkie wygenerowane liczby pierwsze (aby wygenerować następne), aby mieć kilka prywatnych funkcji do pomocy i jedną publiczną funkcję (generate_next_prime
).Czy można ustawić prywatną zmienną w Rust?
W języku Java lub C++ napisałbym klasę PrimesGen
, ale w Rust nie może być prywatnych zmiennych w strukturze. W Pythonie prawdopodobnie napisałbym moduł PrimesGen
, ale w modułach Rust nie można mieć zmiennych.
Ten kod kompiluje i uruchamia:
struct PrimesGen {
primes_so_far: Vec<i32>,
next_candidate: i32,
}
impl PrimesGen {
pub fn new() -> PrimesGen {
PrimesGen {
primes_so_far: vec![],
next_candidate: 2,
}
}
}
fn main() {
let pg: PrimesGen = PrimesGen::new();
println!("{}", pg.next_candidate);
}
Więc co mam zrobić?
pól w struct są prywatne domyślnie. –
@ FrancisGagné Dodałem mój kod, co robię źle? – Neo
Jesteś w tym samym pliku, który zdefiniował 'PrimesGen', więc możesz robić z nim, co chcesz, ponieważ jesteś jego właścicielem. – loganfsmyth