Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1810 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  interet fonction void

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

interet fonction void

n°1845443
labrat
ah les femmes!
Posté le 31-01-2009 à 09:15:01  profilanswer
 

bjr
voila a chaque fois dans le tuto que je suis le mec il met toujours  
par ex
 function animate (): Void{
}
est ce qu'il faut la mettre a chaque fois qu'on met un code sans se poser de questions  
je pige pas l'interet de cette function  
merci de m'ecliarer...

mood
Publicité
Posté le 31-01-2009 à 09:15:01  profilanswer
 

n°1845923
abais
Posté le 01-02-2009 à 22:47:58  profilanswer
 

Void signifie que ta fonction ne renvoie aucune valeur en externe, ça la rend donc sensiblement plus légère à l'exécution...
 
A confirmer par les experts !


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1845933
labrat
ah les femmes!
Posté le 02-02-2009 à 00:09:21  profilanswer
 

bjr  
merci de repondre mais si je met pas ca a chaque fois que je mets un code ca va planter le code alors et pourquoi?

n°1845979
abais
Posté le 02-02-2009 à 10:21:28  profilanswer
 

Je viens de trouver ça :
http://www.smithmediafusion.com/blog/?p=380


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1846204
shurik'n
Posté le 02-02-2009 à 18:42:04  profilanswer
 

Ne pas comprendre a quoi sert une function qui ne renvoie pas de valeur, c'est avoir de très sérieuses lacunes en programmation d'une manière générale...  
 
Il faut reprendre (apprendre ?) la base, ce serait déjà un bon début.

n°1846329
Zedlefou
In cabbage we trust !
Posté le 03-02-2009 à 04:28:54  profilanswer
 

C'est du typage. C'est une question d'organisation du bidule pour definir, cette fonction me renvoit un nombre, celle-ci une chaine, celle-ci ne renvoit rien.
En AS3 c'est devenu indispensable et c'est pas plus mal.


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1846341
abais
Posté le 03-02-2009 à 08:53:30  profilanswer
 

Moi j'aimais bien la tolérance d'AS2, nous les graphistes on arrivait à "programmer".
Concernant le Void, j'ai voulu tester, j'ai donc fais ce script :

Code :
  1. function youpi(): Void{
  2.     maVar1="void";
  3. }
  4.  
  5. function youpi2(){
  6.     maVar2="noVoid";
  7. }
  8.  
  9. youpi();
  10. youpi2();
  11. trace(maVar1+" "+maVar2);


et là, le trace me retourne "void noVoid" alors que j'attendais un "undefinned noVoid"
Qu'est ce qui flanche ?

Message cité 1 fois
Message édité par abais le 03-02-2009 à 09:45:41

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1846386
Zedlefou
In cabbage we trust !
Posté le 03-02-2009 à 10:57:14  profilanswer
 

Quand ta fonction ne renvoie rien (Void) ca veut pas dire qu'il n'y a rien dedans mais juste qu'il n'y a pas de "return" dedans.

 

Essaie ca plutot :

Code :
  1. function youpi(): Void{
  2.      return "void";
  3.    }
  4.    
  5.    function youpi2(){
  6.       return "noVoid";
  7.    }
  8.     trace( youpi()+" "+youpi2());



Message édité par Zedlefou le 03-02-2009 à 10:58:11

---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1847014
labrat
ah les femmes!
Posté le 04-02-2009 à 11:15:43  profilanswer
 

bjr
ouais be j'ai l'impression que c'est comme dans le cours de mateo en php (siteduzero) quand on comprend pas un truc tordu tu le mets et tu pose pas de questions (fonctionnement de isset)je vais mettre void a chaque fois comme ca tout est nikel je precise quand meme pour les critiques a 3 balles (ne pas comprendre etc..)
je suis un tuto en anglais donc c'est encore + difficile de suivre ( en francais j'ai pas trouvé ..)

n°1847397
gatsu35
Blablaté par Harko
Posté le 05-02-2009 à 05:34:34  profilanswer
 

abais a écrit :

Moi j'aimais bien la tolérance d'AS2, nous les graphistes on arrivait à "programmer".
Concernant le Void, j'ai voulu tester, j'ai donc fais ce script :

Code :
  1. function youpi(): Void{
  2.     maVar1="void";
  3. }
  4.  
  5. function youpi2(){
  6.     maVar2="noVoid";
  7. }
  8.  
  9. youpi();
  10. youpi2();
  11. trace(maVar1+" "+maVar2);


et là, le trace me retourne "void noVoid" alors que j'attendais un "undefinned noVoid"
Qu'est ce qui flanche ?


 
 
Ce qui flanche c'est que tu as mis void entre quotes, et donc maVar1 est une string.
Et sinon les déclarations de variable je vois que tu te les mettais dans le cul.
 
Encore heureux qu'AS3 est arrivé et à posé des verrous partout, avec AS1 et AS2 c'était la porte ouverte au codage de porc

mood
Publicité
Posté le 05-02-2009 à 05:34:34  profilanswer
 

n°1848996
abais
Posté le 09-02-2009 à 15:39:35  profilanswer
 

Oui j'ai déclarer comme un porc pour ce test, je profitais de l'as2, et rassure toi, je code plus proprement depuis que AS3 me l'impose (formation autodidacte oblige :( ), mais là n'est pas la question... D'autant plus que le "void" de maVar1 est un texte mis au pif, et non le typage de la fonction elle même...
 
Merci Zed, j'ai compris maintenant ^^


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1907222
Patt3rson
Posté le 21-07-2009 à 14:19:15  profilanswer
 

Hello,  
 
bon je me permet d'ajouter ma pierre à l'édifice avec une analogie compréhensible par moi même (c'est déjà bien) et qui m'a permis de comprendre à quoi sert la constante void.
 
Bien admettons que je sois un objet qui fasse partie d'une classe (humain). Si je suis une occurence de la classe 'humain' et que cette dernière à la création soit construite avec la constante 'void' cela veut dire que les valeures de toutes les propriétés des objets dynamiques (moi), taille, couleur, yeux, cheveux, etc ... est définé sur "undefined" et que par conséquent si je veux des yeux bleus je vais par exemple dans la fonction qui code pour les yeux bleus faire appel à un "object" de type bitmap qui contiendra la couleur de mon oeil.  
Cela permet en fait de créer une classe/fonction/variable qui ne type pas de paramètres. (String, Number, Int, ...)
 
Si dans la classe humain (dont je fais partie en qualité d'objet dynamique) on attendait comme type "object" et que je suis une occurence de cette même classe je ne pourrai avoir de type "number" pour définir mon nombre de doigt de pied. (Pour faire super simple)
 
Voilà j'espère avoir été clair. Je fonctionne avec cette analogie depuis le départ.
Bien sur elle est surement pas parfaite, si vous souhaitez affirmer ou infirmer ne vous géner pas :)
 
Courage à vous
 

n°1907287
Zedlefou
In cabbage we trust !
Posté le 21-07-2009 à 15:37:38  profilanswer
 

J'ai rien compris [:delarue5]  
Tu as réussi à rendre compliqué un truc simple ...
 
Void, dans une déclaration de fonction, sert à déterminer le type de ce qui va être renvoyé par "return".
Très souvent, la fonction n'a pas de return/ne renvoie rien. Donc on met Void.
 
C'est tout ...


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1907704
abais
Posté le 22-07-2009 à 17:03:43  profilanswer
 

C'est marrant le chemin que j'ai fait en 5 mois...
Mais c'est vrai que c'est pas évident à comprendre en autodidacte...
Surtout quand on commence par l'AS, on a pas vraiment la nécessité des retour de fonction... au début :o


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1907707
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 22-07-2009 à 17:14:59  profilanswer
 

Rien compris [:pingouino]
Une fonction renvoie des valeurs de différents types ou ne renvoie rien. Si elle ne renvoie rien, alors on indique "void" comme type de retour. "void" = "vide".
Pourquoi s'embrouiller avec des analogies bizarres [:pingouino]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1907776
Patt3rson
Posté le 22-07-2009 à 22:15:06  profilanswer
 

oui .. c'est vrai qu'avec 2 jours de recul ca fait plus sac à embrouilles qu'autres choses. Mes excuses. (je préfère ne pas éditer pour l'instant et vous laisser réagir sur le post)
 
Pourquoi des analogies : pour rendre accéssible avec des exemples comréhensible des concept parfois abstraits :)
 
Ce que je remarque sur ce fofo ("interet fonction void" ) c'est que nombre d'entre vous apportent des exemples de prog concret avec des explications de "programmation" mais que personne ne se met au niveau du créateur du sujet. Ce pourquoi j'ai tenté (avec ma vision) d'apporter une analogie, certes sans succés je vous l'accorde.
 
Ferai mieux la prochaine fois.
 
 
 

n°1907794
gatsu35
Blablaté par Harko
Posté le 22-07-2009 à 23:39:07  profilanswer
 

Ben tu fais une analogie avec des objets, des occurences, et tout un tralala qui n'a rien à voir avec le fait qu'une fonction retourne ou pas  une valeur d'un certain type.


---------------
Blablaté par Harko
n°1908488
Patt3rson
Posté le 25-07-2009 à 10:58:21  profilanswer
 

Bon je refait mon analogie de manière plus compréhensible.
//correction apportée : remplacement du mot "constante" par "type spécial"
//correction de l'utilité de 'Null'

 
/*Considérons que ce matin je me rend chez le médecin. Sous entendu que je n'y vais pas pour lui lire le journal. J'y vais car je suis malade.
Je n'ai pas besoin de retourner une information à ce stade du projet alors j'écris le type spécial : void{ à la fin de ma déclaration de fonction*/  
 
//"moi" c'est un objet qui me représente (je suis un movieclip par ex.)
 
function aller_chez_medecin () :void{
          moi.gotoAndStop();  
}
 
/*Maintenant la consultation se déroule et le médecin me demande de l'argent (l'enflure !). Bien sur le médecin attend que je lui donne une valeur numérique (Number) correspondant à la somme demandée (a). Alors, quand je déclare ma fonction "payer_doc" je vais écrire 'Number'. */
 
function payer_doc(a:Number):Number {  
    return (a);  
}  
 
trace(21);  
// si le médecin me demande 21 euros je vais lui "retourner" 21 euros.
 
Il y à surement des fautes de syntaxes mais l'important est de comprendre que la constante 'void' a comme seule retour (return) : "undefined".  
 
Si j'attend une valeur numérique, un texte, ou un type précis quand j'appelle 'return' à ce moment je l'écris à la fin de ma déclaration de fonction. (:Number, :String, etc ...)
 
Si j'attend "rien" il existe la le type spécial 'null'. Représente l'absence de type
 
On comprend alors que 'Void' est un type spécial qui s'écris quand on appelle pas 'return' dans les lignes de codes.  
 
J'espère avoir été plus clair et plus pédagogique que précedement !


Message édité par Patt3rson le 28-07-2009 à 09:36:39
n°1908618
gatsu35
Blablaté par Harko
Posté le 26-07-2009 à 13:35:20  profilanswer
 

void n'est pas une constante, c'est un mot clé du langage pour dire qu'une fonction ne retournera RIEN, RIEN DU TOUT
http://fr.wikipedia.org/wiki/Void
 
ensuite, si tu attends 0, ben c'est 0 que ta fonction devra retourner, pas null.
null n'est pas une constante, c'est un mot clé du langage pour dire "rien", "vide" "keudal", mais pas 0, 0 étant un chiffre ayant une signification, et si ta fonction retourne 0, dans ce cas elle devra retourner un int ou un Number.
 
Une fonction déclarée avec void, ne devra n'avoir aucun "return" dans son corps.


---------------
Blablaté par Harko
n°1908646
abais
Posté le 26-07-2009 à 17:17:54  profilanswer
 

En restant sur ce sujet.. vu que le "void" n'est pas obligatoire pour dire à une fonction de gober tout en fermant sa gueule (analogie aussi débile qu'impolie, je sais), je suppose qu'elle apporte un gain en terme d'optimisation ?  
En AS3, le fait de restraindre l'étendu d'une variable ou d'une fonction (private...), est ce que ça apporte un gain en terme de rapidité ?


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1909228
Patt3rson
Posté le 28-07-2009 à 09:31:43  profilanswer
 

Yop correction en effet ce n'est pas une constante (confusion dans mon idée avec autre chose).
J'ai édité le méssage
 
Pour ceux qui comprenent l'anglais je link l'aide officiel de Adobe pour CS4 :
 
http://help.adobe.com/en_US/AS3LCR [...] Types.html
 
Bon courage à tous


Message édité par Patt3rson le 28-07-2009 à 09:36:58
n°1909263
gatsu35
Blablaté par Harko
Posté le 28-07-2009 à 10:18:10  profilanswer
 

abais a écrit :

En restant sur ce sujet.. vu que le "void" n'est pas obligatoire pour dire à une fonction de gober tout en fermant sa gueule (analogie aussi débile qu'impolie, je sais), je suppose qu'elle apporte un gain en terme d'optimisation ?  
En AS3, le fait de restraindre l'étendu d'une variable ou d'une fonction (private...), est ce que ça apporte un gain en terme de rapidité ?


 
Quand on programme correctement, on met les types sur les arguments que recevra la fonction et on met son type de retour.
Si cette fonction ne renvoit rien, ben ça sera void et puis c'est tout.


---------------
Blablaté par Harko
n°1909321
Patt3rson
Posté le 28-07-2009 à 11:04:40  profilanswer
 

Un peu de philosophie !
 
Gatsu35 est à la diplomatie ce que Delon est à l'humour : antagonique !
 
A prendre avec philosophie bien sur :))
 
 
 

n°1909344
bergolf
Posté le 28-07-2009 à 11:39:20  profilanswer
 

L'indication  
: Void
apporte bien quelque chose, même en dehors d'un raisonnement en terme de performances : elle apporte de la clarté au code en permettant d'identifier ta fonction par sa signature (son nom, ses arguments, son retour). En clair ça permet de retrouver d'un coup d'oeil ce que sont, attendent et font tes fonctions.
 
Pour parler en terme d'analogies, et en revenir à ce charmant médecin, tu pourrais distinguer rapidement ces deux fonctions :
payer(prix:number):number
et
payer(prix:number):void
L'une des deux impliquant un mode de payement entraînant un rendu de monnaie (celle retournant un number) et l'autre un paiement précis (CB...) qui n'a pas besoin de retour puisque sans rendu de monnaie. Le prix à payer étant dans les deux cas en argument ici.


Message édité par bergolf le 28-07-2009 à 11:45:14

---------------
Et le 5475612973041e jour Dieu inventa le microprocesseur...
n°1909356
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-07-2009 à 12:22:45  profilanswer
 

Mais Grands Dieux, que de verbosité inutile pour un pauvre mot clé signifiant qu'une fonction ne renvoie rien [:mlc]
Qu'est ce que ça sera quand vous passerez au C++ et à ses merveilleux dynamic_cast, auto_ptr et autres joyeusetés de <functional> par exemple [:marc]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1909363
bergolf
Posté le 28-07-2009 à 12:47:19  profilanswer
 

Bah j'ai commencé par java avant de passer au C++
(Et je n'ai jamais fait d'asr, d'où ma réponse exempte de détails techniques relatifs à ce beau monde...)
Toutefois je ne trouve pas cette verbosité si inutile, puisqu'elle aspire à promouvoir la programmation propre et aisément entretenable...
On commence par ne pas mettre ces void là (ou par les mettre juste parce que "ce sera void et puis c'est tout" ), et on finit par ne jamais mettre un seul commentaire dans tout le code, ou des blagues du genre "paramètre entier" qui ne servent à rien à part dire "si si, j'en ai des commentaires!".
 
D'autre part je n'expliquais pas là ce mot clé, il me semble que ceci a déjà été fait dans les posts précédents ; mais l'intérêt de le voir figurer, qu'il soit imposé ou non. Ceci pour répondre partiellement à la question de abais.
 
Par contre, ta remarque se rapproche à mon sens beaucoup plus d'un exemple flagrant de "verbosité inutile". Mais ce n'est que mon avis...

Message cité 1 fois
Message édité par bergolf le 28-07-2009 à 12:54:00

---------------
Et le 5475612973041e jour Dieu inventa le microprocesseur...
n°1909379
Zedlefou
In cabbage we trust !
Posté le 28-07-2009 à 13:41:39  profilanswer
 

Harkonnen a écrit :

Mais Grands Dieux, que de verbosité inutile pour un pauvre mot clé signifiant qu'une fonction ne renvoie rien [:mlc]
Qu'est ce que ça sera quand vous passerez au C++ et à ses merveilleux dynamic_cast, auto_ptr et autres joyeusetés de <functional> par exemple [:marc]


+1  
 

Spoiler :

[:la_mouche]


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1909384
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-07-2009 à 13:53:35  profilanswer
 

bergolf a écrit :


Par contre, ta remarque se rapproche à mon sens beaucoup plus d'un exemple flagrant de "verbosité inutile". Mais ce n'est que mon avis...


Ma remarque est tout simplement la remarque de quelqu'un qui est étonné qu'un mot clé aussi simple suscite un topic aussi touffu... Je ne vois pas ce qui est incompréhensible quand on dit que "void" stipule qu'une fonction ne renvoie aucune valeur. Si on ne comprend pas ça, ça veut dire qu'on a pas compris le concept de fonction et là ce sont carrément les bases de la programmation qui sont à revoir.
Ce topic est aussi utile qu'un éventuel topic qui demanderait si le cast du malloc est obligatoire ou non.
Quant à l'éventuel gain de performance apporté par le fait que "void" soit mentionné ou non, je vous invite à désassembler une fonction avec void et une fonction sans void pour vous rendre compte que le source assembleur généré est strictement identique dans les 2 cas.


---------------
J'ai un string dans l'array (Paris Hilton)
n°1909400
Patt3rson
Posté le 28-07-2009 à 14:24:33  profilanswer
 

Peu importe la longueur du fofo ... Pour ma part je me moque que "ça" prenne 362 méssages pour expliquer une fonction d'un language de prog.
 
L'important c'est de voir que la communauté vit et réagit en partageant idée et astuces.  
 
Voir qu'un modérateur de forum est surpris du nombre de méssages postés pour expliquer un concept qui lui parait être simple de compréhension manque de discernement concernant un publique plus néophyte.
 
dommage.
 

n°1909413
Deamon
Posté le 28-07-2009 à 14:45:39  profilanswer
 

Patt3rson a écrit :

Pour ma part je me moque que "ça" prenne 362 méssages pour expliquer une fonction d'un language de prog.


Peut-être pour toi mais pas pour celui qui veut une réponse claire et simple. C'est bien de vouloir expliquer les choses mais parfois il faut mieux être concis et compréhensible. Pour un simple void pas besoin d'en faire 3 tonnes.  ;)

n°1909417
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-07-2009 à 14:53:17  profilanswer
 

Patt3rson > Ce n'est pas le modérateur qui est surpris, mais le simple forumeur. Tu ne te rends pas compte que l'analogie que tu as posté plus haut est tellement complexe et capillotractée qu'elle ne fait que t'embrouiller plus qu'autre chose.

 

Prends l'exemple d'une bête fonction qui effectue une addition d'entiers et qui renvoie donc le résultat sous forme d'entier (en C)

 
Code :
  1. int add(int x, int y)
  2. {
  3.    return x+y;
  4. }


Là j'ai stipulé le type de retour "int" car la fonction renvoit le résultat de l'addition qui est aussi un entier. Si j'avais indiqué "void", la fonction n'aurait rien renvoyé (et j'aurais pas mis de "return" à la fin), la rendant du coup totalement inutile (à quoi ça sert de créer une fonction qui effectue une addition si je ne renvoie pas le résultat de ladite addition ?)

 

Maintenant, regarde ce code :

Code :
  1. void printMessage(char *msg)
  2. {
  3.    printf("%s", msg);
  4. }


Cette fonction se contente d'afficher sur la console la chaine de caractères qu'on lui envoie en paramètre. Nul besoin ici de renvoyer quoi que ce soit, donc pas de "return", et un "void" pour indiquer que la fonction ne renvoie rien.

 

Franchement, ou est la difficulté dans ceci ?


Message édité par Harkonnen le 28-07-2009 à 14:54:24

---------------
J'ai un string dans l'array (Paris Hilton)
n°1909580
stealth35
Posté le 29-07-2009 à 03:14:50  profilanswer
 

arf :
 

Code :
  1. trace(maVar1+" "+maVar2);


 
ou comment se compliquer,
plus simple et plus propre de faire
 

Code :
  1. trace(maVar1, maVar2);

Message cité 1 fois
Message édité par stealth35 le 29-07-2009 à 03:15:06
n°1909731
gatsu35
Blablaté par Harko
Posté le 29-07-2009 à 11:02:08  profilanswer
 

stealth35 a écrit :

arf :

 
Code :
  1. trace(maVar1+" "+maVar2);
 

ou comment se compliquer,
plus simple et plus propre de faire

 
Code :
  1. trace(maVar1, maVar2);



Merci pour ce post inutile,
trace en AS2, ne prend qu'un seul paramètre,
en AS3, il en prend plusieurs


Message édité par gatsu35 le 29-07-2009 à 11:02:13

---------------
Blablaté par Harko
n°1909956
stealth35
Posté le 29-07-2009 à 15:58:44  profilanswer
 

sauf qu'ici on est entrain de parler d'AS3,  
je vois aucun intérêt a débattre sur de vielles technologies.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  interet fonction void

 

Sujets relatifs
Probleme de lieurLister un dossier en fonction du login
héritage multiple, surcharge de fonction avec même nomfonction executable par asp
[Access] Fonction "SOMME" dans un etat qui ne fonctionne pasquel intérêt de relancer une exception dans un catch ?
Interet de XML/XSL FOStopper public void (pour gestion d'événements)
Afficher certaines balises xml en fonction de leurs attributs[HTML] Pblm fonction "Z Index"
Plus de sujets relatifs à : interet fonction void


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR