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

    Argomenti facoltativi in una funzione

    Ciao,
    volevo sapere come si dichiarano, in una funzione, gli argomenti opzionali. Ovvero, come si fa a dire che, se nel calling della funzione non viene passato un certo argomento, allora questo deve assumere il valore predefinito.
    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di Guglie
    Registrato dal
    Dec 2002
    Messaggi
    1,572
    prova con un semplice
    codice:
    function ciao(i)
    {
    	if(i==undefined)
    	{
    		i=valorePredefinito;
    	}
    }
    non so se undefined funzia, semmai prova qlc altro al suo posto
    powered by GNU/Linux Gentoo
    A Elbereth Gilthoniel o menel palan-diriel, le nallon sí di-nguruthos! A tiro nin, Fanuilos!

  3. #3
    Niente, non funzia
    se il valore viene passato così --> [], flash non gli abbina né undefined né altro, ma lo lascia semplicemente così --> [], e questo mi sta rendendo impossibile il riconoscimento della condizione nell'if... cmq grazie, se ti viene in mente qualcosa sono qua

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Guarda che così:

    codice:
    nome_funzione([]);
    *stai* passando alla funzione un parametro, proprio quel []. Se non vuoi passarlo, chiama la funzione cos'ì:

    codice:
    nome_funzione();
    e quello che ha scritto guglie è correttissimo..

  5. #5
    Sì, ma il problema viene fuori quando ci sono più argomenti, e se il secondo argomento non viene passato, di solito nei programmi si scrive:

    risultato = funzione(arg1, [], arg3);

    Infatti, non posso certo scrivere

    risultato = funzione(arg1, , arg3);

    concordate?
    Ed è questo che mi frega...
    l'unico modo (che mi viene in mente) sarebbe poter riconoscere una variabile che ha questo valore --> [], ma non so come si fa.

  6. #6
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Beh, puoi fare tante cose, come passare un valore apposito:

    risultato = funzione(arg1, "no", arg3);


    oppure semplicemente mettere l'argomento opzionale per ultimo:

    risultato = funzione(arg1, arg2); // e salti il terzo parametro

  7. #7
    Allora passerò un valore apposito, perché ci sono diversi argomenti opzionali, non solo uno.
    Speravo ci fosse una soluzione più, come dire, hard-coded...
    Cmq grazie


  8. #8
    la soluzione hard-coded è quella di utilizzare le funzioni per come sono state create.
    un buon modo di usare funzioni è quello di usare il minor numero possibile di argomenti, soprattutto quelli opzionali.

    Purtroppo in flash mx 2004 non hanno implementato il tanto acclamato method overloading, altrimenti avresti potuto tranquillamente usare quella tecnica.

    Sarebbe anche stato molto bello veder implementata la gestione degli argomenti opzionali di python.. ma qui andiamo troppo oltre..

    per evitare problemi cmq passa il valore null o undefined come argomento nullo

  9. #9
    Ti ringrazio, farò così
    fra l'altro, non ho l'mx2004 ma solo l'mx quindi anche se l'avessero imlpementato...

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.