‫Tekrar hoş geldin.
‫Bu videoda, yaşadığımız hatayı düzelteceğiz ve bunu nasıl çözebileceğimizi göreceğiz.
‫Yani bu örnekte, çok basit bir örnek.
‫Ve mantığı doğru işleyen bu yönteme sahip olduğumuzu gerçekten biliyoruz.
‫Yani bu, bir arkadaşın parti arkadaşı olup olmadığını belirleyen şeydir.
‫Ve bu genellikle hata ayıklamanıza yardımcı olacak bir şeydir çünkü belirli bir yöntemin ne
‫yapacağını biliyorsanız, o noktada bir kesme noktası oluşturabilirsiniz.
‫Tamam.
‫Dolayısıyla, daha önce hiç kullanmadığınız veya görmediğiniz bir programda çalışıyorsanız, elbette
‫öncelikle bu programı incelemeniz ve tüm yöntemlerin ne işe yaradığını anlamanız gerekir.
‫İşte bu nedenle, elbette burada neler olup bittiğine dair bir özete sahip olmak faydalı olacaktır.
‫Tamam.
‫O zaman açıkla.
‫Tamam.
‫Liste ne işe yarar?
‫Bu yöntemin özeti nedir?
‫Yani burada sadece üçlü adımları kullanabilir ve ardından küçük bir özet ekleyebilirsiniz.
‫Yani kimin parti arkadaşı olduğunu ya da kimin parti arkadaşı olacağını ya da buna benzer bir şeyi anlamanın mantığı budur.
‫İngilizcem mükemmel değil ama sanırım ne demek istediğimi anladınız.
‫Bunu yaptıktan sonra anlayacaksınız, tamam mı?
‫Pekala, işte mantık burada.
‫Ve programımız kendi kendine çalışıyor, değil mi?
‫Yani aşağı yukarı amaçlandığı gibi çalışıyor, tabii ki kısa isimli olanları değil de uzun isimli
‫olanları göstermesi dışında.
‫Dolayısıyla sorun büyük olasılıkla bir şeyi seçme mantığımızda yatmaktadır.
‫Yani burada zaten görebiliyorduk.
‫Tamam, muhtemelen.
‫Bu, sorun yaşadığımız yöntemdir, bu nedenle bu kesme noktasından ve bundan da kurtulabiliriz.
‫Ve sonra buradaki yöntemimize bir göz atabiliriz.
‫Öyleyse bir kesme noktası ekleyelim ve veya parti arkadaşı yöntemini alalım ve sonra buna bakabiliriz.
‫Öyleyse bununla başlayalım.
‫Ve önemli olan tabii ki değerlerdir, değil mi?
‫Bu yüzden değerleri bilmek istiyoruz.
‫Ve bu durumda, en kısa isimle ve belki de buradaki uzunlukla ilgileniyoruz çünkü mantık bu,
‫değil mi?
‫O halde yapacağımız şey bir sonraki adıma geçmektir.
‫Ve görebiliyoruz ki, tamam, liste yedi değerden oluşuyor, yani sorun yok.
‫Bu işe yarıyor gibi görünüyor.
‫Bütün arkadaşlarımız orada.
‫Yani o noktaya kadar her şey yolunda görünüyor.
‫Sonra bir sonraki adıma geçiyoruz.
‫Yani bizim gözümüz var.
‫Sayaç ve sıfırda.
‫Pekala, bu OC.
‫İndirim sayısı yediye ulaştığına göre bir sonraki adıma geçebiliriz.
‫Şimdi elimizde bir karşılaştırma var.
‫Liste I uzunluğu en kısa uzunluktan büyükse.
‫Ve orada en kısa ismin Frank olduğunu görebiliriz.
‫İşte bununla başladık.
‫Değil mi?
‫Liste Frank ile başlıyor.
‫Yani liste I'de, yani sıfırda, Frank'e sahip olacağız.
‫Yani sorun yok.
‫Şimdi bir sonraki adıma geçelim, if ifadesindeki bu koşul doğru değilmiş gibi görünüyor.
‫Tamam.
‫Böylece bir sonraki iterasyona veya bir sonraki adıma geçebiliriz ve tekrar karşılaştırma yaparız.
‫Şimdi listenin hala yedi kişi olduğunu görebiliyoruz.
‫Ve sonra bir dize uzunluğu üç ile döndürüldü ve diğeri beş idi.
‫Peki burada neler oluyor?
‫Joe'ya bakıyoruz ve Joe listedeki bir sonraki kişi olmalı çünkü Frank'ten daha kısa bir ismi
‫var.
‫Ve bu bizim bildiğimiz bir şey çünkü programı biz yazdık.
‫Ama nedense bu isim hâlâ Frank.
‫Böylece bu noktada onları gerçekleştirebiliriz.
‫Tamam.
‫Muhtemelen burada bir hata var.
‫Dolayısıyla, daha küçük veya daha doğru olması gerektiği halde daha büyük ile karşılaştırıyoruz.
‫Ve şimdi kesme noktasından kurtulup programımızı tekrar çalıştırırsak, o zaman göreceğiz.
‫Tamam, en kısa isimleri alıyoruz, Joe ve D, Frank ve Maria.
‫Pekala, bu harika.
‫Şimdi programımız tekrar ücretsiz oldu.
‫Elbette değil çünkü burada hala pek çok sorunumuz var.
‫Bunlardan biri Frank, Joe, Michelle ve diğerlerinin yer aldığı bu listeye sahip olmamız.
‫Tamam.
‫Bu yüzden listeyi manuel olarak oluşturduk, böylece orada ne olduğunu biliyoruz.
‫Ama şimdi diyelim ki on kişiyi davet etmeye çalışıyoruz, ama kızımız bize yedi kişilik bir
‫liste verdi.
‫Şimdi bu kodu çalıştıralım.
‫Ve.
‫Bir istisnamız var.
‫Mükemmel.
‫İstisnaların en güzel yanı da bu.
‫Kodunuzda bir sorun olduğunu bilirsiniz ve bunu düzeltebilirsiniz çünkü bazen, az önce gördüğümüz
‫gibi, hataları görmezseniz düzeltmeleri çok zor olur.
‫Ve burada bir argüman aralık dışı istisnası indeks aralık dışındaydı negatif olmamalı ve koleksiyonun boyutundan
‫küçük olmalıdır.
‫Böylece bununla ilgili ayrıntıları görüntüleyebilirsiniz.
‫Bu istisna hakkında biraz daha bilgi edinebilirsiniz ve bu size bilmeniz gereken her şeyi anlatacaktır.
‫Doğru.
‫Yani çok fazla bilgi.
‫Çoğu zaman çok fazla.
‫Ancak bunun söylediği şey, listede aralığımızın dışında olan bir öğeye erişmeye çalıştığımızdır.
‫Peki ne olabilir?
‫Erişmeye çalıştığımız liste olabilir, bu yüzden buraya gidebiliriz.
‫Ve bir istisnamız olduğunu görebiliriz.
‫Elimizde bir liste var, sıfıra kadar say.
‫Peki neler oluyor?
‫Liste neden sıfır?
‫Çünkü listenin yedi olduğunu daha önce görmüştük.
‫Doğru.
‫Peki liste neden birdenbire sıfır oldu?
‫Çünkü biz asla gerçekten.
‫Listeye baktık ve listeyi sildik.
‫Doğru.
‫Pekala.
‫Yaptığımız şey, listeden bir öğeyi çıkarmaktı.
‫Biz de listeden çıkaralım dedik.
‫Ve bu tabiri caizse acemi hatasıdır, çünkü size daha önce de söylediğim gibi, referansla geçiyoruz.
‫Değere göre geçiş yapmıyoruz.
‫Söylediğimiz zaman aradaki fark şudur.
‫Burada bir liste olmasını istiyoruz.
‫Ve bu yöntem çağrıldığında, ki burada durum budur, get party friends burada çağrılır ve friends adında
‫bir liste iletiriz.
‫Yani bu listeyi buraya aktarıyoruz, bu değerleri aktardığımız anlamına gelmiyor, aslında bu değerlerin
‫referansını aktarıyoruz, bu da tüm bu değerlerin hafızamızda bir yerde olduğu anlamına geliyor.
‫Yani bilgisayarımızın hafızasındalar.
‫Doğru.
‫Ve bu değerlere atıfta bulunuyoruz.
‫Diyoruz ki, tamam, tüm arkadaşlarınızın olduğu bu anıya gitmek istiyorum.
‫Bu yüzden Frank'e gitmek istiyorum, Joe'ya gitmek istiyorum vs.
‫Bu listeyle çalıştığımızda, örneğin, bu listenin bir öğesini kaldırırız.
‫Değerlerle birlikte bir kopya oluşturmuyoruz ve sonra devam edip listeden öğeleri kaldırıyoruz.
‫Ama aslında bu hafızada siliyoruz.
‫Yani Frank'i listeden siliyoruz, Joe'yu listeden siliyoruz.
‫Dolayısıyla, arkadaşlarınızı kontrol etmek için her döngüde bunu kullanırsanız bunu kolayca görebilirsiniz.
‫Tamam, bir şeyler görebilmemiz için tekrar küçülteceğim.
‫Bu yüzden her döngü için bunu yapıyorum.
‫Ve gördüğünüz gibi, sadece Angelina görüntüleniyor.
‫Neden sadece Angelina?
‫Çünkü Angelina listedeki yedinci kişi ve ben az önce listeden altı kişiyi çıkardım.
‫Bunu dört kişiyle tekrar yapalım.
‫Maria, Carlos ve Angelina'nın hâlâ orada olduğunu görmeniz için.
‫Gördüğünüz gibi, aslında Michelle.
‫Tamam.
‫Şimdi daha da iyisi, Michelle, Carlos ve Angelina'nın hala listede olduğu çok garip bir
‫durumumuz var.
‫Bu yüzden sürekli olarak birilerini listeden çıkarıyoruz ve bu da bir sürü sorun
‫yaratıyor çünkü eğer bir başkası ya da biz bu arkadaş listesini başka bir yerde kullanırsak, o zaman liste boş olacak ve bozulacak.
‫Başlangıç değerleri orada olmayacaktır ve bu yapmamamız gereken bir şeydir.
‫Yapabileceğimiz şey burada bir tampon oluşturmak.
‫Bu yüzden buffer adında yeni bir değişken oluşturacağım ve bu yeni bir string listesi olacak.
‫Ve bu benim listem olacak, bu yüzden bu noktada bana iletilen listemi ileteceğim.
‫Tamam.
‫Ve onu tamponda saklayacağım.
‫Yani yeni bir liste olacak.
‫Ve şimdi görebileceğimiz şey, elbette şimdi tampondan çıkarmamız gerektiğidir.
‫Bu yüzden listenin bu kopyasından çıkaracağız.
‫Listenin kendisini kaldırmayacağız.
‫Tamam.
‫Yapmamız gereken önemli ayrım budur.
‫Şimdi kopyadan çıkarıyoruz.
‫Şimdi, elbette, partiyi öne almak için buradaki tamponu da kullanmamız gerekiyor.
‫Tamam.
‫Çünkü aksi takdirde listeden asla bir şey yayınlamayacağız.
‫Bu her zaman yedi kişi olacak.
‫Yani bu tampon listede bile her zaman yedi kişi olacak ve o zaman doğru çalışmayacaktır.
‫Tamam.
‫Böylece biz Frank, Joe, Michel, her şey hala listede.
‫Tamam.
‫Yani for each döngüsü iyi çalışıyor.
‫Karşılaştırma yapmak gerekirse, başka bir for döngüsü oluşturabilir ve parti arkadaşlarımızla kontrol edebiliriz, böylece şimdi
‫sadece yedi parti mi yoksa üç parti arkadaşımız mı olduğunu görebiliriz.
‫Yani aslında dördüncü parti arkadaşlar olduğunu görebilirsiniz.
‫Yani hepsi içeride ve Joe, Frank ve Maria da hala içeride.
‫Yani arkadaş listesini silmedik, tampon listedeki öğeleri sildik.
‫Ve şimdi, elbette, artık buna ihtiyacımız yok.
‫Yani bu sadece test amaçlıydı ve hata ayıklamak içindi.
‫Ama şimdi iyi işleyen bir programımız var.
‫Şimdi diyebilirsiniz ki, tamam, artık hiç böcek yok.
‫Ancak, daha önce yaşadığımız bir hatayı hala düzeltmedik, buraya on girersek.
‫Yapardık.
‫Bir hata veya hata mı var?
‫Aslında, bir argüman aralık dışı istisnası.
‫Peki burada ne yapabiliriz?
‫Çünkü var olmayan bir öğeye erişmeye çalışıyoruz.
‫Yani listemiz boş olmasına rağmen bir liste öğesine erişmeye çalışıyoruz.
‫Yani liste sayısı sıfırdır.
‫Ve bu, bir sonraki videoda düzelteceğimiz bir şey çünkü yine, bu video 10 dakikadan fazla ve bu yüzden
‫süper uzun videolar yapmak istemiyoruz.
‫Bu yüzden bir sonraki videoda bunu nasıl düzelteceğinizi göstereceğim çünkü bundan kaynaklanan pek çok sorunumuz
‫var.
‫Tamam.
‫Öyleyse bir sonraki videoda bunları düzeltelim.
‫Orada görüşürüz.