|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
[all] Call by value return VS Call by reference
Ragassi quale metodo usate voi di solito?
Fate ritornare alle vostre funzioni un valore? Codice:
object x = doSomething(a, b) private object doSomething(...) { object ret; ... return ret; } Codice:
object x = new object(); doSomething(x, a, b); private object doSomething(object x, ...) { ... x = ...; } 'iao |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: May 2007
Città: Bari
Messaggi: 15
|
Non credo che ci sia una regola precisa.
Se la funzione fornisce un solo risultato puoi usare entrambi , se ne genera più di uno devi ricorrere ad un passaggio per riferimento. Inoltre a volte il valore di ritorno di una funzione può essere usato, per generare un codice errore più che il risultato della funzione. |
![]() |
![]() |
![]() |
#3 | ||
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
Quote:
cioè se io mi creo un'array e faccio un return dell'array no funzia? Quote:
![]() |
||
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
dei dei forza...
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Aug 2003
Città: Lugano (Svizzera)
Messaggi: 598
|
Personalmente preferisco ritornare un oggetto piuttosto che passarlo per riferimento..
Innanzitutto per poter, come già scritto, gestire meglio le procedure d'errore.. e poi trovo sia più pulito e di facile lettura.
__________________
XBox GamerTag : Black CrB | PSN : Black_CrB | Steam : CrB® |
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: May 2007
Città: Bari
Messaggi: 15
|
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
![]() Codice:
private Collection <? extends Object> getGenericCollection(String key); ![]()
__________________
![]() |
|
![]() |
![]() |
![]() |
#8 |
Junior Member
Iscritto dal: May 2007
Città: Bari
Messaggi: 15
|
I'm sorry non conosco quello che tu dici.
![]() Ma non è un array ![]() |
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Jul 2005
Messaggi: 291
|
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
![]() In linea di massima ritengo sia piu' chiaro ritornare esplicitamente i risultati, anche se ci sono diversi distinguo da fare. Innanzi tutto se il linguaggio non supporta piu' valori di ritorno o almeno tuple diventa scomodo ritornarne diversi. L'array e' una alternativa suboptimale che peraltro funziona solo per alcuni linguaggi. Se un oggetto mi serve sia come input che come output allora devo ovviamente passarlo come argomento e in tal caso ha poco senso anche ritornarlo (a meno che non venga ritornato per una scelta tra piu' oggetti, ma in tal caso come valore di ritorno ha un significato diverso). Considero invece una pessima idea costringere il chiamante a creare un oggetto e passarlo come argomento per ricevere il risultato, non fosse altro perche' non e' sempre detto che il valore di ritorno vada creato (es. idiota: il max tra due valori). [faceto] Ma tutto questo e' solo l'effetto collatorale di linguaggi di programmazione malsani che non solo consentono, ma addirittura obbligano ai side-effects. Il vero programmatore (quello che programma come mangia ![]() ![]() [/faceto]
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Io restituisco qualcosa, tu restituisci qualcosa, egli restituisce qualcosa, eccetera.
Io ritorno... a scuola, tu ritorni a scuola, egli ritorna a scuola, eccetera. In italiano ritornare è intransitivo.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Vero, in questo contesto ritornare è la traduzione sbagliata di return (che vuol dire sia ritornare che restituire), ma in informatica si vedono inglesismi ben peggiori per cui non mi preoccuperei più di tanto.
edit: http://www.sapere.it/gr/DictionarySe...nput=ritornare Quote:
![]()
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele Ultima modifica di marco.r : 22-06-2007 alle 12:09. |
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Io invece un po' mi preoccupo. Perchè se iniziamo a "ritornare le cose" allora vale anche il mitico "Assunta, scendi la bambina che la gioco".
Certo pochi battono deployare.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
con questa
![]() chiedo scusa per il fraintendimento! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:55.