Ich habe folgendes Spiel Bedingung, dass die eingegebene Vermutung überprüft, ob eine gültige Zahl ist (es ist vom Rost Spiel Übung zu erraten):Rust Spiel auf Nummer Zustand
let mut guess = String::new();
io::stdin().read_line(&mut guess).expect("Failed to read");
let guess: u32 = match guess.trim().parse() {
Ok(num) => num,
Err(_) => continue,
};
Wie erweitere ich das Match zu überprüfen, ob die Zahl ist negativ oder 0 (ich möchte in diesem Fall einen Fehler werfen) und normal weitermachen, wenn die Zahl positiv ist?
Ich habe versucht, ein if auf der num innerhalb der Ok-Fall hinzufügen, aber das wirft einen Fehler (wahrscheinlich, weil num an den Wert von rate gebunden ist) und scheint auch nicht idiomatisch.
ich schnell Zweifel haben. Mein Fall für negativ (der zweite Ok) funktioniert nicht, wenn ich eine negative Zahl übergebe. Ich bekomme stattdessen den Err (_) -Zustand. Liegt das daran, dass das Parse für eine negative Zahl nicht als String funktioniert oder mache ich etwas falsch? – KDN
Aber du analysierst es als 'u32', das kann sowieso nicht negativ sein, so dass du einen Parse-Fehler bekommst. Willst du das nicht? – mcarton
Sie haben Recht, alberne mich, habe die u32 nicht gesehen – KDN