1 votes

Passage de valeurs entre fonctions

Bonjour à tous, existe-t-il un moyen de définir localement une variable dans une fonction et de la passer ensuite à une autre fonction ? Je veux dire qu'il est possible de passer une valeur locale d'une fonction à une autre. Quelqu'un peut-il me suggérer la solution ? Merci d'avance

7voto

zdmytriv Points 2660

C'est aussi simple que ça ou tu voulais dire autre chose :

private function function1():void
{
    var localVariable:String = "this is local variable of function1()";
    function2(localVariable);
}

private function function2(string:String):void
{
    trace(string);
}

function1();

ou utiliser une variable globale comme stockage temporaire :

private var globalVariable:String = "";

private function function1():void
{
    var localVariable:String = "this is local variable of function1()";

    globalVariable = localVariable;
}

private function function2():void
{
    trace(globalVariable);
}

function1();
function2();

2voto

PiPeep Points 1455

Zdmytriv a raison.

Cependant, vous pouvez aussi créer des variables par défaut, comme ceci :

(Modification du code de zdmytriv)

private function function1():void
{
    var localVariable:String = "this is local variable of function1()";
    function2(localVariable);
    function2(); //You don't have to enter a default argument
}

private function function2(string:String = "something else"):void
{
    trace(string);
}

Ce serait une trace :

this is local variable of function1()
something else

Un peu hors sujet, mais bon à savoir.

0voto

user135036 Points 41

Dans Flex, les primitives sont transmises par valeur, tandis que les objets complexes sont transmis par référence. Vous pouvez utiliser cette méthode pour transmettre des objets sans avoir à définir la portée d'une variable en dehors des fonctions elles-mêmes. Par exemple :

private function function1():void {
{
     var localVar:Object = {value:"test"};
     trace(localVar.value);
     function2(localVar);
     trace(localVar.value);
}

private function function2(obj:Object):void
{
     obj.value = "new value";
}

Ce serait une trace :

test
new value

Ce qui reflète le fait que la fonction2 reçoit le paramètre "obj" par référence, comme un pointeur vers l'objet original "localVar". Lorsqu'elle définit le champ .value, cette modification est répercutée dans la fonction1.

J'ai juste pensé que je devais le signaler.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X