Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [delphi] : differenza tra Var e Out

    Salve a tutti
    volevo sapere la differenza tra queste due istruzioni

    function Funzione ( out variabile :tipoVar);

    e

    function Funzione ( var variabile :tipoVar);

    e più precisamente la differenza tra out e var che a me sembrano uguali.
    Grazie a tutti

    white
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Si tratta di una differenza sottilissima: entrambe le parole chiave indicano che la variabile passata per riferimento mantiene le modifiche all'uscita dalla funzione; tuttavia, la parola chiave var rappresenta un parametro che deve essere passato dall'esterno e il cui valore deve essere inizializzato in quanto la funzione ne fa uso e, all'occorrenza, può modificarlo, mentre la parola chiave out si riferisce ad una variabile che, passata come parametro, viene necessariamente impostata dalla funzione, e pertanto non necessita di una inizializzazione prima della chiamata. In sostanza, out garantisce alla routine chiamante che la funzione inizializza o imposta in qualche modo la variabile.

    Passare una variabile come parametro var senza inizializzarla dovrebbe, per questo motivo, produrre un "warning", che non viene invece segnalato nel caso di out per i motivi precedentemente esposti.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Originariamente inviato da alka
    Si tratta di una differenza sottilissima: entrambe le parole chiave indicano che la variabile passata per riferimento mantiene le modifiche all'uscita dalla funzione; tuttavia, la parola chiave var rappresenta un parametro che deve essere passato dall'esterno e il cui valore deve essere inizializzato in quanto la funzione ne fa uso e, all'occorrenza, può modificarlo, mentre la parola chiave out si riferisce ad una variabile che, passata come parametro, viene necessariamente impostata dalla funzione, e pertanto non necessita di una inizializzazione prima della chiamata. In sostanza, out garantisce alla routine chiamante che la funzione inizializza o imposta in qualche modo la variabile.

    Passare una variabile come parametro var senza inizializzarla dovrebbe, per questo motivo, produrre un "warning", che non viene invece segnalato nel caso di out per i motivi precedentemente esposti.

    Ciao!
    in effeti sull'help di delphi veniva evidenziata questa proprietà specifica di out, ma credevo vi fosse una differenza più sostanziale!

    grazie mille
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da Whitecrowsrain
    in effeti sull'help di delphi veniva evidenziata questa proprietà specifica di out, ma credevo vi fosse una differenza più sostanziale!
    L'avresti trovata nella Guida...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.