Non Dijkstra del "Caso contro l'istruzione GOTO" applica tanto al giorno d'oggi la chiamata di nome encapsulations di codice di come funzioni?

StackOverflow https://stackoverflow.com/questions/20353488

Domanda

Non so come funzionava indietro nel giorno, quindi non ho idea di che cosa si fa riferimento.

Ma, prendere JS:

var x = 5;
var foo = function(y) { console.log(2); };
var y = 6;
foo(); // is this not in essence a goto statement?

Se non, quindi cosa c'era di diverso su GOTO?

Sarebbe Dijkstra si sono opposti JS per questi motivi?

È stato utile?

Soluzione

Nel tuo esempio, si chiama una subroutine piuttosto che incondizionatamente e permanentemente il trasferimento del flusso di controllo (che è quello che goto fa).

Se metti il codice dopo foo();, che codice eseguito dopo foo() viene chiamato.

Altri suggerimenti

No, questa è in sostanza una dichiarazione "Gosub". Hai letto la carta originale? IMHO Dijkstra è stato offeso dallo stato "imbrattato" in tutto il codice.

Questa è una dichiarazione di salto, non una dichiarazione Goto. Pertanto, non crea codice spaghetti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top