Ho il seguente codice:
subroutine foo(int index)
{
// Check A.
// Critical: Check A must precede Check B below.
if (index == 1)
{
return true;
}
// Check B.
if (index - 2 < 0)
{
return false;
}
return true;
}
Il codice è una rappresentazione semplificata di uno scenario reale in cui sto verificando la validità dei segni di punteggiatura in una stringa.
La mia domanda: esiste un costrutto in qualsiasi linguaggio che garantisca che l'ordine delle due istruzioni if sia mantenuto così com'è? (Senza dover inserire un commento nel codice come ho fatto e spero che sia ascoltato.)
Per il caso in cui index è 1, se Check B viene spostato prima di Check A, Check A non verrà mai catturato e foo () restituirà sempre false, che è male.
Ancora una volta, la mia preoccupazione è per il mantenimento del codice da parte dei futuri programmatori. Ci sono circa 10 se le istruzioni nel codice, una dopo l'altra, e il loro ordine è importante.
MODIFICA 1:
Sono uno sviluppatore esperto, e mi chiedo davvero se ci sono nuovi sviluppi nelle lingue che consentano ciò che sto chiedendo in precedenza. Mi dispiace di non averlo chiarito.
EDIT 2:
In risposta a commenti che suggeriscono index < 2
invece di index - 2
< 0: non sono d'accordo. index - 2
indica che sono interessato se esiste un articolo due posizioni prima dell'indice corrente, mentre index < 2
non trasmette le stesse informazioni. (Certo, questa è la mia opinione!)