Was ist eine nicht-lokale Rückgabe?

8

Was ist eine nicht lokale Rückkehr? In welchen Szenarien ist es sinnvoll? Bitte geben Sie ein Beispiel zur Erklärung.

    
dalibocai 17.01.2012, 15:45
quelle

2 Antworten

3

Es bedeutet, eine Funktion zu beenden und an einer anderen Stelle zu enden, an der die Funktion aufgerufen wurde. Es wird hauptsächlich verwendet, um auf Ausnahmen (dh try , throw und catch in Java und C ++) zu verweisen, aber es kann auch Mechanismen wie setjmp/longjmp in C bedeuten.

    
Ernest Friedman-Hill 17.01.2012, 15:47
quelle
9

Hier ist ein guter Artikel über die Verwendung von nicht-lokalen Renditen in der Kontext von Rubinblöcken.

  

Ruby-Blöcke unterstützen nicht-lokale Rückgabe (einige Referenzen), was bedeutet   dass eine Rückkehr aus dem Block sich genauso verhält wie die Rückkehr aus dem   ursprünglichen Kontext des Blocks.

Es bedeutet im Grunde, dass Sie einen Block von einer Funktion aufrufen können und der Block von der ursprünglichen Funktion zurückkehren kann.

    
recursive 17.01.2012 15:50
quelle