Dans le contexte de la conversion d'une expression infixe en expression postfixe, en utilisant l'algorithme Shunting-yard. Je veux utiliser un vecteur pour stocker la sortie, qui stockerait à la fois les données de type opérateur et numérique.
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum Operator {
Add,
Sub,
Mul,
Div,
}
fn main() {
let mut output: Vec<String> = Vec::new(); // create an output vector
let a = 2;
let b = Operator::Add;
let c = 3;
output.push(a.to_string());
output.push(b.to_string());
output.push(c.to_string());
}
Bien entendu, le code ci-dessus ne compile pas, puisque le paramètre to_string()
n'est pas définie pour la méthode Operator
. Je vois deux façons de régler ce problème :
- Définir un
to_string()
méthode - Créer un vecteur pour stocker des références à des nombres et
Operator
.
Je pense que le second choix est préférable, bien que je ne sache pas si la création d'un vecteur de références introduira beaucoup de complexité.