En su ejemplo, está llamando a una subrutina en lugar de transferir incondicional y permanentemente el flujo de control (que es lo que es lo que goto
lo hace).
Si pones código después foo();
, ese código se ejecutaría después foo()
se llama.
Pregunta
No sé cómo funcionó en el pasado, así que no tengo idea de a qué se refería.
Pero, tome JS:
var x = 5;
var foo = function(y) { console.log(2); };
var y = 6;
foo(); // is this not in essence a goto statement?
Si no, ¿qué era diferente de las declaraciones de GOTO?
¿DiJkstra se habría opuesto a JS por estos motivos?
Solución
En su ejemplo, está llamando a una subrutina en lugar de transferir incondicional y permanentemente el flujo de control (que es lo que es lo que goto
lo hace).
Si pones código después foo();
, ese código se ejecutaría después foo()
se llama.
Otros consejos
No, esta es en esencia una declaración de "gosub". ¿Leíste el artículo original? En mi humilde opinión, Dijkstra se ofendió por el estado de "manchar" en todo su código.
Esta es una declaración de salto, no una declaración de GOTO. Por lo tanto, no crea código de espagueti.