Penso anche che questi snippet siano intercambiabili. Ma dovresti sempre preferire le variabili esplicite alla magia globale del thread.
un caso in cui la magia $!
var è a portata di mano:
result_or_error = perform_some_operation() rescue $!
Per coloro che non sanno che questa linea significa:
E 'così chiamato "inline salvataggio". Il formato è questo:
<expr1> rescue <expr2>
In primo luogo, expr1
viene valutata. Se non è stata sollevata alcuna eccezione, viene restituito il suo valore. Ma se c'è stata un'eccezione, allora viene valutato expr2
e viene restituito il suo valore.
Quindi, in questo caso, se perform_some_operation()
ha generato un'eccezione, la variabile result_or_error
dovrebbe essere impostata su un'istanza di tale eccezione (poiché $!
restituisce l'ultimo errore).
fonte
2013-05-19 17:56:05
Qui ci sono troppi ['esempi'] (http://stackoverflow.com/search?q=inline+rescue) tranne questo. –