YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

French subtitles

← 07-16 Cola Wars 1 - Solution

07-16 Cola Wars 1 - Solution

Get Embed Code
13 Languages

Showing Revision 1 created 10/18/2015 by Darren Bridenbeck (Amara Staff).

  1. Donc, la premičre chose
    que je vous ai demandée,
  2. c'est si les udacicolaVotes
    sont une variable locale ou globale.
  3. Et vous devriez voir déterminé
    que c'est une variable locale.
  4. Bien, pour trouver ça, vous allez lŕ
    oů la variable est déclarée, et c'est
  5. ici, et vous savez que c'est déclaré
    car le type de donnée est juste ici.
  6. Et vous voyez que c'est déclaré dans
    une méthode, c'est ŕ dire entre les deux
  7. accolades ici, ou est-ce déclaré
    en dehors de la méthode?
  8. Maintenant, si c'est déclaré
    ŕ l'intérieur de la méthode
  9. ça signifie que
    c'est une variable locale et alors
  10. on peut clairement voir que c'est bien
    déclaré ŕ l'intérieur de la méthode.
  11. Donc c'est une variable locale.
  12. Bien, qu'est-ce que ça veut dire ?
  13. On devrait aussi se demander,
  14. si j'ai déclaré quelque chose comme
    une variable locale, ai-je bien fait ?
  15. Réfléchissons-y dans ce cas.
  16. Voici notre téléphone.
  17. Et nous avons parlé
    d'udacicola, donc
  18. concentrons-nous seulement sur le moment
    oů on clique sur le bouton udacicola.
  19. Lorsque l'on clique sur ce bouton,
    cette méthode démarre.
  20. Cela définit les votes udacicola ŕ zéro,
    puis ça ajoute un aux udacicolaVotes,
  21. qui sont ŕ zéro.
  22. Donc les udacicolaVotes passent ŕ un.
  23. Comme le vote udacicola est une variable
    locale, ŕ la fin de cette méthode,
  24. il meurt en quelques sortes,
    ou il est supprimé.
  25. Les udacicolaVotes soient détruits ou
    disparaissent en fin de méthode car
  26. c'est une variable locale,
    ce qui cause quelques problčmes.
  27. Alors, pourquoi est-ce un problčme ?
  28. Bien, vous pourriez penser
    que si trois personnes ont votés
  29. udacicola en cliquant sur le bouton,
    les udacicolaVotes devraient ętre ŕ 3.
  30. Ce qui se passe, c'est qu'au premier clic
    sur le bouton, udacicola
  31. devient zéro.
  32. Il y en a un qui s'ajoute
    et ça devient un.
  33. Puis il se détruit.
  34. Il n'existe plus.
  35. La deuxičme fois que quelqu'un clique
    sur les udacicolaVotes,
  36. les udacicolaVotes sont ŕ nouveau faits.
  37. C'est ŕ nouveau déclaré.
  38. Car rappelez-vous, la premičre fois
    il a été détruit.
  39. Donc il doit ętre refait.
  40. Et lorsqu'il reste, il est définit ŕ zéro.
  41. Maintenant on ajoute ŕ nouveau un,
    mais rappelez-vous la valeur est zéro.
  42. Les udacicolaVotes sont donc ŕ un,
    bien qu'on ait cliqué deux fois.
  43. Et la męme chose
    se produit au troisičme clic
  44. il est toujours ŕ un et sera ŕ nouveau
    détruit ŕ la fin de cette méthode.
  45. C'est donc le premier problčme.
  46. Ce n'est pas vraiment de sauvegarder
    l'état entre le clics de bouton
  47. ŕ propos de combien de personnes
    ont voté pour udacicola.
  48. Mais il y a un autre problčme ici,
    ce code va en fait déclencher une erreur.
  49. Et lŕ raison c'est que, rappelez vous
    que j'ai dit que les udacicolaVotes
  50. voient en quelque sorte le jour,
    ou leur portée commence ici.
  51. Et ŕ la fin de cette méthode
    de vote udacicola.
  52. Ils sont détruits, ils n'existent plus.
  53. Ça veut dire que quand je viens ici, les
    udacicolaVotes n'existent pas vraiment.
  54. Plus techniquement, on dit
    que cette variable est hors de portée.
  55. Sa portée était lŕ, elle a été
    déclarée lŕ, et ça s'est terminé ici.
  56. Mais on essaie de l'utiliser ici.
  57. Et elle ne peut pas ętre utilisée.
  58. Les udacicolaVotes en local ça n'était
    pas une bonne décision dans ce cas.
  59. Et je peux résumer
    pourquoi avec ces deux points.
  60. Ça ne mémorise pas le vote entre
    les clics, et ce n'est pas dans la portée
  61. pour la méthode show me votes.
  62. Cela va donc effectivement
    causer des erreurs.
  63. Donc cela ne va pas se compiler.
  64. Ok, regardons les autres variables
    de ce programme.