pmontrasio / rubynights-20170301

2 stars 2 forks source link

else: #18

Closed cstrap closed 7 years ago

cstrap commented 7 years ago

else euno dei piu controversi statement in Python, perchepuo essere usato con for e try

Il significato? Se va tutto bene esegui il codice nel blocco, un paio di esempi:

try:
    open('file.csv', 'r')
except Exception:  # bad catch! ;-)
    print('qualcosa e` andato storto')
else:
    print('tutto ok, continuo')

In questo modo il codice risulta piuleggibile e si restringe il campo al solo codice che puo sollevare eccezioni.

for x in range(10):
    print(x)
else:
    print('else')

0
1
2
3
4
5
6
7
8
9
else

for x in range(10):
    print(x)
    if x == 3:
        break
else:
    print('else')

0
1
2
3
pmontrasio commented 7 years ago

Ruby ha ensure che fa quasi esattemente quel che fa else. L'unica differenza è avere un nome distinto e non funzionare nei loop. C'è una richiesta in tal senso ma pare essersi impantanata https://bugs.ruby-lang.org/issues/7882

In Ruby else indica anche il default di un case.