[Linux-Biella] goto

PaulTT paultt a bilug.linux.it
Lun 2 Gen 2012 14:11:25 CET


On 31/12/2011 11:14, vallini.daniele a bilug.linux.it 說:
> Sat, Dec 31, 2011 at 09:51:46AM +0100  Marcello Tescari ha scritto:
>
>>>> Cosi' ad esempio in perl:
>>>>
>>>> ini: ##########   AVVIO PROGRAMMA LETTURA DATI TELEBORSA
>>>>
>>>> print "
>>>> $gn  lettura quotazioni da http://www.teleborsa.it
>>>> $gn -----------------------------------------------
>>>>
>>>> $Rn (1) $gn Indici
>>>> $Rn (2) $gn Cambi
>>>> $Rn (3) $gn All-Share
>>>> $Rn (4) $gn Etc
>>>> $Rn (5) $gn Etf
>>>> $Rn (<) $gn exit
>>>> $z";
>>>>
>>>> $x=<STDIN>;
>>>> if ($x =~ "1")  {goto indici;}
>>>> if ($x =~ "2")  {goto cambi;}
>>>> if ($x =~ "3")  {goto allshare;}
>>>> if ($x =~ "4")  {goto etc;}
>>>> if ($x =~ "5")  {goto etf;}
>>>> if ($x =~ "<")  {exit;}
>>>> else            {goto ini;}
>>>>
>>>> (Quelle variabili $Rn, $gn, $z richiamano semplicemente sequenze ANSI
>>>> per colorare il testo dell'interfaccia utente)
>>>
>>> comunque, ad oggi, qualsiasi linguaggio da la possibilità di fare a meno del
>>> goto. quello che hai scritto poteva benissimo farsi con le funzioni e gli
>>> if/else, schelta multipla ecc ecc.
>>>
>>> Il problema del goto è che ti crea un file sorgente/script gigantesco. a
>>> distanza di tempo ci metti parecchio a capire come cavolo è stato scritto il
>>> programma.
>> +1
> Concordo di massima ed e' l'unico caso in cui uso ancora il goto.
>
> La separazione delle azioni in piccole funzioni mi pare renda piu'
> facili, almeno nel mio caso, gli aggiornamenti e la lettura del codice.
>
> Provate a scrivere in perl un codice alternativo all'esempio meglio
> leggibile, senza il goto e mantenendo separate le azioni richiamate
> nelle funzioni.
>
> Se vi e' di meglio sono ben lieto di impararlo ed applicarlo.
> _______________________________________________
> Linux mailing list
> Linux a ml.bilug.linux.it
> http://ml.bilug.linux.it/mailman/listinfo/linux
>
vai pure di goto, come detto, negli script (ad esempio se fai script 
batch, e' praticamente l'unica soluzione che hai ;P), e' anche usabile, 
a patto che sia poco e poco distante, se no davvero diventa un gran casino


-- 
Stallman's Law: under corporatocracy, every advance in technology
is an opportunity for corporations to reduce, in practice,
the rights of human beings.



Maggiori informazioni sulla lista Linux