Sto cercando di rendere il mio codice più efficiente e sostituire un gruppo di istruzioni if che ho scritto. Il mio programma fino ad ora controlla essenzialmente quale operatore (come +, -, ecc) viene inserito e poi lo calcola. Ad esempio 1 + 5 restituisce 6. Quando il programma valuta il simbolo tra il numero (il "+" nel mio esempio) controllerà l'operatore e quindi procederà di conseguenza. Per esempio, se si tratta di un "+", ci vorrà l'1 e aggiungere 5. Il codice funziona in questo modo:Sostituzione di istruzioni?
switch (op) {
case "+": // Addition
return args[0] + args[1];
case "-": // Subtraction
return args[0] - args[1];
case "*": // Multiplication
return args[0] * args[1];
case "/": // Division
return args[0]/args[1];
Mi chiedo se è possibile sostituire l'intero blocco con un qualche tipo di dichiarazione che sarà rilevare l'operatore dalla stringa e convertirlo in un'operazione? Mi rendo conto che per alcuni operatori è probabilmente più semplice utilizzare le istruzioni switch, ma ne ho molte e c'è una differenza di 5-10 ms tra la valutazione dell'operatore nella parte superiore delle istruzioni switch e in basso.
istruzioni switch con un sacco di casi sono già compilatore ottimizzato per qualcosa che esegue in modo paragonabile a un ricerca basata sull'hash, o almeno molto meglio della ricerca lineare if/else. – The111