‫Merhaba ve hoş geldiniz.
‫Bu derste, farklı dönüş türleri ve return deyimi kullanarak fonksiyonlarımızdan nasıl
‫değer döndürebileceğimizi inceleyeceğiz.
‫İçeri dalalım ve bunun nasıl çalıştığını görelim.
‫Geçen derste, fonksiyonumuz bir değer döndürmüyorsa, dönüş türünün void olması gerektiğini söylemiştik,
‫burada da öyle yaptık.
‫Peki ya get gibi temel olarak if deyiminde bu fonksiyonun etrafında dönüp dönmeyeceğimizi kontrol eden bir fonksiyon
‫almak isteseydik, bunun yerine etrafında dönmeli diyebilseydik, günün sonunda çok
‫daha temiz bir fonksiyon olurdu.
‫Peki bunu nasıl yapacağız?
‫Boolean ifadesi döndürebilen bir fonksiyona nasıl ulaşırız?
‫Bunu yapmanın yolu basitçe void yerine bir tip kullanmaktır.
‫Dolayısıyla, boolean bir ifade döndürmek istersek, bir değişken için yaptığımız gibi bool yazın.
‫Ancak fonksiyonu değişkenden ayıran şey, onu bir değişkenden ziyade bir fonksiyon yapan
‫parantezleri ondan sonra koymamızdır.
‫Ve yapabileceğimiz şey, buna should platform return demek ve sonra parantezlerimizi koymaktır.
‫Bu durumda, bu fonksiyona argüman olarak aktarmak istediğim herhangi bir şey yok, bu yüzden parametre listesini boş
‫bırakabilir, satırın sonuna noktalı virgül koyabilir ve ardından bu satırın tamamını kopyalayıp
‫hareketli platforma gidebilirim.
‫CP Ve dosyanın hemen sonunda, herhangi bir işlevin arasına gerçekten istediğiniz herhangi bir yere koyabilirsiniz.
‫Sadece bir fonksiyonun içinde olmadığından emin olun.
‫Buraya yapıştıracağım.
‫Girinti yapacağım ve ve sınıfını ekleyeceğim.
‫Kapsam çözünürlüğü çalışır.
‫Yani hareketli bir platform iki nokta üst üste platform dönüşü yapmalı, sonra noktalı virgülü kaldırmalı, bunun yerine bazı parantezler eklemelidir.
‫Burada yapmak istediğimiz şey, gerçekten bir sonuç döndürmesini istiyorsak, özel bir return
‫anahtar sözcüğü ve ardından doğru türde bir ifade kullanmamız gerektiğidir.
‫Bu durumda boolean bir ifade olması gerekir, bu yüzden true değerini döndürüp sonuna noktalı virgül
‫koyabilirim veya false değerini döndürüp sonuna noktalı virgül koyabilirim.
‫Ama bu kadar basit olmak zorunda değil.
‫Aslında herhangi bir ifade olabilir.
‫Bir fonksiyona yapılan başka bir çağrı olabilir, bir değişken olabilir, burada ifademizin içinde olduğu
‫gibi bazı operatörlerin kullanımı olabilir.
‫Yani, aslında, devam edelim ve bunu yapmayı deneyelim.
‫Bu ifadeyi alacağım.
‫Taşınan mesafe ve hareket mesafesinden daha büyüktür.
‫Bunu kesip çıkaracağım ve bu platform dönüş fonksiyonu için dönüş ifadesi olarak koyacağım.
‫Burada şikayet edeceğini fark ettiniz çünkü distance move, should platform return fonksiyonumuz
‫içinde yerel bir değişken değil.
‫O yüzden birkaç şeyi daha taşımamız gerekecek.
‫Ancak bunu yapmadan önce, bir if deyiminde platformun dönmesi durumunda buna bir çağrı koymayı unutmak istemiyorum,
‫bu nedenle platform dönmeli ve ardından parantezleri koymayı unutmayın, böylece işlev gerçekten
‫F deyimimizin içinde çağrılır.
‫Şimdi bana biraz daha iyi gelmeye başladı.
‫Platformun geri dönmesi gerekiyorsa, aşağıdakilerin hepsini yaparız.
‫Şimdi yapmamız gereken, MOVE platformunda sahip olduğumuz taşınan mesafe değişkenini getirmek.
‫Aslında MOVE platformu içinde buna ihtiyacımız yok.
‫İfade vermeden önce kesip getireceğim ve hatta koyacağım.
‫Genellikle return deyimi bir işlevdeki son şeydir çünkü bir işlevden döndüğünüzde aslında başka
‫bir şey yapmazsınız.
‫Günlük mesajı gibi bir şey koyacak olsaydım, return ifademden sonra bir tür mesaj içeren bir you
‫log koyardım.
‫Genellikle derleyicinizden bu satıra asla ulaşılamayacağını ve muhtemelen bunu yapmak
‫istemediğinizi söyleyen bir uyarı alırsınız.
‫Bu yüzden return deyimi genellikle son şeydir.
‫Should platform return fonksiyonunda taşınan mesafeyi tanımlayan çizgiyi geçtikten sonra, şimdi şunu söylediğini
‫görebilirsiniz, hey, mevcut bir konumum yok ve mevcut konumu çok kolay bir şekilde yakalayabiliriz,
‫should platform return'ü çağırmadan hemen önce mevcut konumu ayarladık.
‫Yani aslında aktif bir konum elde etmek tam da istediğimiz şey.
‫Bu yüzden bir değişken yerine, sadece yerdeki aktif konumu almak için bir çağrı koyacağım
‫ve platform geri dönmelidir.
‫Şimdi sahip olduğumuz şey, taşınan mesafenin başlangıç konumu ile aktif mevcut konum arasındaki
‫mesafeye eşit olduğudur.
‫Bu, yapılandırılmış hareket mesafesinden daha büyükse, evet, platform geri dönmelidir.
‫Bu fonksiyonun söylediği şey budur ve MOVE platform fonksiyonumuzun içinden daha yüksek bir soyutlama
‫seviyesinde kullanmamızı sağlar.
‫Şimdi mesafe hareketinin aşımını yazdıramadığımızdan şikayet ettiğini fark edeceksiniz.
‫Önemli bir şey değil.
‫Aslında artık bunu basmak istemiyorum.
‫Zaten işlevimi de bozuyor.
‫Bu yüzden aşım değişkeni satırını sileceğim.
‫Get name satırını sileceğim, günlük mesajını sileceğim çünkü sadece geçici
‫olarak oradaydı, dolayısıyla günlük geçici adı.
‫Şimdi hareket platformu işlevimiz çok daha temiz görünmeye başlıyor.
‫Burada konumla ilgili bazı güncellemeler yaptığımızı görebiliriz.
‫Platformun geri dönüp dönmeyeceğini ve dönmesi gerekip gerekmediğini görebiliriz.
‫Ardından konumu güncelliyor ve ters çeviriyoruz.
‫Şimdi, burada biraz daha iyi görüneceğini düşündüğüm bir şey, en üstte bu kod demetine sahip olmak
‫yerine bir alt deyimimiz olsaydı.
‫Dolayısıyla, platformun geri dönmesi gerekiyorsa, bunu çalıştıracağız, aksi takdirde onu ilerletmek açısından normal
‫kodu çalıştıracağız.
‫Bu nedenle, alt ifade hakkında konuştuğumuz zamana geri döndüğümüzü hatırlayın.
‫Sadece bir if ifadesinden sonra gelir ve bunu bu şekilde yaparız.
‫Parantezlerden sonra yeni bir satır açıp else yazıyoruz, ardından yeni bir satır daha açıp yeni parantezler
‫açıyoruz ve burada bulunan kodu işaretimizin en üstüne taşıyabiliyoruz.
‫Bunu alıp alt ifadenin içine taşıyabiliriz.
‫Şimdi oldukça basit görünüyor.
‫Platform döndükten sonra platformu döndüren kod başka bir şey mi yapmalı?
‫Platform hızımızla platformu ileriye taşıyoruz.
‫Şimdi sizi geri dönüş değeri olan kendi fonksiyonunuzu yaratmaya davet ediyorum.
‫Bir get distance moved fonksiyonu eklemenizi istiyorum.
‫Şu anda bunu taşınan mesafe adlı bir değişkende hesaplıyoruz.
‫Bunun yerine bir fonksiyon çağrısı yapmanızı istiyorum.
‫Bu yüzden bir float döndürmelidir çünkü taşınan mesafenin türü budur, bunu should platform return içinde çağırmalıyız.
‫Bu yüzden vektör dist'i kullanmak yerine kendi uygulamamızı kullanmalıyız.
‫Peki hangi kodu içermelidir?
‫İçine hangi kodu koymalıyız?
‫Buradaki ipucu, bu kodu zaten yazmış olmamızdır, yani sadece kopyalayıp yeni fonksiyona yapıştırıyorsunuz.
‫Ancak geri dönüş ifadesinin ne olması gerektiği hakkında biraz düşünün, öyle ki geri döndürdüğümüz
‫şey taşınan mesafe değeridir.
‫Videoyu duraklatın ve deneyin.
‫Tekrar hoş geldiniz.
‫Şimdi dosya yöneticimize gidelim.
‫Buraya get distance moved adında float dönüş değeri olan yeni bir fonksiyon ekleyeceğiz.
‫Ve sonra parantez içinde hiçbir argümanımız olmayacak.
‫Sonra da hareketli platformumuza geçeceğiz.
‫CP Bir şamandıra, hareketli bir platform, iki nokta üst üste, iki nokta üst üste taşınan mesafe veya taşınan mesafeyi alacağız, parantezler
‫demeliyim.
‫Ve sonra bir sonraki satıra yeni bir parantez seti koyacağız.
‫Ve geri döndürmek istediğimiz şey, tam anlamıyla mesafe taşıma float'umuzu oluşturmak için kullandığımız
‫ifadedir, bu yüzden onu kesip buraya yapıştırabilirim.
‫Yani f vektörü, iki nokta üst üste, iki nokta üst üste, dist, başlangıç konumu, aktif konumu al ve bu satırın sonuna noktalı
‫virgül koy.
‫Bu da platformun geri dönmesi gerektiği anlamına geliyor.
‫Şimdi bu mesafe taşıma değişkenine sahip olmak yerine, yarısı tamamlanmış olan satırı sileceğim.
‫Geri dönüp mesafeyi açacağız.
‫Parantezler hareket mesafesinden daha büyüktür.
‫Böylece, bir değişkene girecek olan şeyi aldık ve bunun yerine kendi işlevine çektik.
‫Bu da, taşınan mesafeye başvurmak istediğimizde, bu günlük mesajını MOVE platformunda
‫tutmak istediğimizde, sınıfımızdaki herhangi bir işlevden taşınan mesafeyi alma işlevini kolayca çağırabileceğimiz
‫anlamına gelir.
‫Harika bir şey.
‫Bu derste return deyimleri ve return değerleri hakkında bilgi edindik ve bunları sınıfımızda iki yeni
‫fonksiyon oluşturmak için kullandık.
‫Bir sonraki derste görüşürüz.