YouTube

Got a YouTube account?

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

Turkish subtitles

← Cola Wars 1 - Solution

Get Embed Code
13 Languages

Showing Revision 2 created 12/04/2015 by Fran Ontanaya.

  1. Size ilk sorduğum şey,

  2. udacicolaOyları’nın, yerel bir değişken mi
    yoksa küresel bir değişken mi olduğuydu.
  3. Yerel bir değişken olarak
    belirlemeliydiniz.
  4. Peki, bunun nedenini kavramak için buraya
    yani değişkenin bildirildiği yere gidin,
  5. veri türü tam şurada olduğu için,
    değişkenin bildirildiğini biliyorsunuz.
  6. Peki, metodun, yani çengelli
    parantezlerin
  7. içinde mi yoksa dışında mı bildirilmiş?
  8. Eğer metod içinde
    bildirildiyse,
  9. bu yerel değişken olduğu anlamına gelir ve
  10. gerçekten metot içinde bildirildiğini
    açık biçimde görebiliriz.
  11. Yani yerel bir değişkendir.
  12. Pekala, bunun anlamı nedir?
  13. Kendimize şunu sormalıyız:
  14. bir şeyi yerel değişken olarak bildirdim,
    başka türlü de yapabilir miydim?
  15. Bu örnek üzerinden,
    bunun üzerine düşünelim.
  16. İşte telefonumuz.
  17. Udacicola üzerine konuşuyorduk, bu nedenle
  18. yalnızca udacicola tuşuna
    bastığımız da ne olduğuna odaklanalım.
  19. Tuşa bastığımız zaman
    metot yürütülmeye başlar.
  20. Udacicola oylarına sıfır değeri verir ve
    sonra sıfır olan udacicolaOylarına
  21. bir ekler.
  22. Böylece udacicolaOyları 1 olur.
  23. udacicolaOyları yerel bir değişken
    olduğu için, bu metodun sonunda,
  24. bir şekilde noktalanır
    ya da silinir.
  25. Yerel bir değişken olması
    nedeniyle metodun sonunda
  26. udacicolaOylarının silinmesi
    iki soruna neden olur.
  27. Bu neden bir sorundur?
  28. Pekala, eğer üç farklı insan
    tuşa basarak,
  29. udacicola'ya oy verseydi,
    udacicolaOyları'nun üç olması gerekirdi.
  30. Gerçekte olan ise,
    tuşa ilk tıklandığında,
  31. udacicolanın sıfırlanmasıdır.
  32. Bir olması için, 1 eklenmesi gerekir.
  33. 1 olduktan sonra silinir.
  34. Artık yoktur.
  35. ikinci kez biri
    udacicolaOyları'na tıklarsa
  36. udacicolaOyları
    yeni baştan oluşur.
  37. Yeniden bildirilir.
  38. Hatırlayın, çünkü ilk seferde
    bütünüyle silinmişti.
  39. Yani yeniden oluşturulmaya
    ihtiyacı vardır.
  40. Ve tekrar oluşturulduğunda
    değer sıfırdır.
  41. Tekrar 1 ekliyoruz ama
    unutmayın değer sıfır.
  42. Bu nedenle, tuşa iki kere tıklanmış
    olsa bile, udacicola hala birdir.
  43. Aynı şey üçüncü kez
    tıklandığı zaman da olur,
  44. Tekrar bir olur ve metodun sonunda
    yine silinir.
  45. İşte bu ilk problemdir.
  46. İki tıklama arasında
    durum kaydı yapılamıyor.
  47. Yani kaç insanın oy verdiği
    kaydedilemiyor.
  48. Diğer bir problem ise,
    bu kodun hata verecek olmasıdır.
  49. Bunun arkasındaki neden,
    dana önce söylediğim gibi,
  50. udacicolaOyları'nın oluşması ve
    faaliyetinin tam burada başlamasıdır.
  51. Daha sonra
    metodun sonunda
  52. silinir ve
    oluşumu sonlanır.
  53. Bunun anlamı, buraya geldiğim zaman
    udacicola gerçekten mevcut olmamasıdır.
  54. Teknik olarak söylersek,
    bu değişken faaliyet dışıdır.
  55. Faaliyet alanı burasıdır,
    burada bildirilir ve sonlanır.
  56. Ama biz bunu burada kullanmak istiyoruz.
  57. lakin kullanılamıyor.
  58. udacicolaOyları'nın yerel olarak atanması
    bu örnekte doğru bir karar değildi.
  59. Bunun neden böyle olduğunu
    şu iki nokta ile özetleyebilirim.
  60. Tıklamalar arasında oylar kaydedilmiyor
    oylarıBanagöster metodu
  61. faaliyet alanı içinde değil.
  62. Böylece hatalar ortaya çıkıyor.
  63. Ve derleme mümkün olmuyor.
  64. Pekala, şimdi bu programdaki
    başka bir değişkene bakalım.