Ich versuche, Primzahlen zu generieren. Der Code muss alle generierten Primzahlen speichern (um den nächsten erzeugen zu können), um einige private Funktionen zu unterstützen und eine öffentliche Funktion (generate_next_prime
).Ist es möglich eine private Variable in Rust zu erstellen?
In Java oder C++ würde ich eine PrimesGen
Klasse schreiben, aber in Rust kann es private Variablen in einer Struktur nicht geben. In Python würde ich wahrscheinlich ein PrimesGen
Modul schreiben, aber in Rust können Module keine Variablen haben.
Dieser Code kompiliert und läuft:
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);
}
Also, was soll ich tun?
Felder in einer Struktur sind standardmäßig privat. –
@ FrancisGagné Ich habe meinen Code hinzugefügt, was mache ich falsch? – Neo
Sie befinden sich in der gleichen Datei, die 'PrimesGen' definiert hat, so dass Sie damit machen können, was Sie wollen, da Sie es besitzen. – loganfsmyth