Bene, la prima sarà sicuramente più veloce. Risolvere un problema altamente specifico e codificato è quasi sempre molto più rapido che passare una soluzione specifica a una routine di risoluzione di problemi generali. Per quanto riguarda "significativamente" più veloce, perché non lo test? Esegui entrambe le versioni in un ciclo 10 milioni di volte e usa TStopwatch
(o qualcos'altro se non hai D2010 o successivo) per cronometrare.
Un'altra cosa: il primo è decisamente più veloce, ma potrebbe anche essere sbagliato. Se non è garantito che length(TestString)
sia> = 2, qui potrebbe esserci una condizione di errore. Se TestString
è una stringa vuota, si genera un'eccezione. In caso contrario, potresti avere o meno un'eccezione a seconda delle impostazioni del compilatore.
fonte
2012-01-17 21:48:22
valutazione da sinistra a destra non è richiesto per il primo metodo. È possibile regolarlo per filtrare prima le occorrenze meno frequenti. Ad esempio, è possibile verificare prima il punto interrogativo se fosse meno frequente. –