‫Merhaba ve hoş geldiniz.
‫Bu derste, kendi fonksiyonlarımızdan yürütme pinlerini nasıl kaldırabileceğimizi ve bunu yapmanın
‫nasıl ve ne zaman iyi bir fikir olduğunu öğreneceğiz.
‫Hadi içeri dalalım.
‫Dolayısıyla, has ammo fonksiyonumuzun daha önce buna ihtiyacımız yokken şimdi yürütme pinlerine sahip olması
‫biraz garip ve bu da kodumuzu biraz daha kötü hale getirdi.
‫Peki bu nedir?
‫Bu neden oldu ve neden bazı işlev düğümleri yürütme pinlerine ihtiyaç duyarken diğerleri duymuyor?
‫Her şey yan etki denen bir şeye bağlı.
‫Peki yan etki nedir?
‫Esasen yan etki, bir fonksiyonun çalıştırıldıktan sonra bir tür gözlemlenebilir etkiye sahip olmasıdır.
‫Şimdi, bununla ne demek istiyorum?
‫Print, print, string kavramlarını anlayabilmeniz için yan etkileri olan bazı fonksiyon örneklerine
‫bir göz atalım.
‫Yazdırma dizesini çalıştırdıktan sonra.
‫Bir şey olduğu oldukça açık çünkü artık ekranınızda bir dize var.
‫Açıkça gözlemlenebilir bir etkiye sahip olan bir dizi itki eklendiğini görebilirsiniz çünkü
‫aniden itki eklediğiniz şey uzaklara doğru uçmaya başlar.
‫Cephaneyi ayarlamanın gözlemlenebilir bir etkisi vardır çünkü cephaneyi ayarladıktan sonra bu değişkendeki değer değişmiştir.
‫Şimdi bu noktada, her işlevin gözlemlenebilir bir etkisi olduğunu merak ediyor olabilirsiniz.
‫Aksi takdirde, bunun ne anlamı var?
‫Pek sayılmaz.
‫Saf işlevler diye bir şey vardır.
‫Saf fonksiyon nedir?
‫Temelde yan etkisi olmayan bir işlevdir.
‫Ancak, geri dönüş değerleri vardır.
‫Yani bu fonksiyondan çıkan değerler vardır.
‫Fonksiyonun tüm amacı da bu değerleri hesaplamak ve bize vermektir.
‫Şimdi yine bazı örneklere bakalım, çünkü bu konuyu çok daha açık hale getirecektir.
‫Cephane al.
‫Bu saf bir işlevdir.
‫Hiçbir yan etkisi yoktur çünkü istediğiniz kadar cephane alabilirsiniz.
‫Ve bundan elde ettiğiniz değerle bir şey yapmadığınız sürece, programınız, oyununuz farklı
‫olmayacaktır.
‫Oyununuz boyunca her zaman cephane almaya devam edebilirsiniz ve oyununuzda gözlemlenebilir
‫hiçbir değişiklik olmayacaktır.
‫Aktif ileri vektörü alın.
‫Bu da istediğiniz kadar alabileceğiniz başka bir şey.
‫Dönen değerle ve çarpma eksiltme gibi tüm bu matematiksel işlevlerle bir şey yapana
‫kadar hiçbir şeyi değiştirmeyecektir.
‫Tüm bu düğümler, sonuçları daha büyük bir amaç için kullanılana kadar projeniz üzerinde bir etkiye sahip değildir.
‫Bunlara saf fonksiyonlar denir ve muhtemelen bunların tam olarak herhangi bir yürütme pini olmayan düğümler
‫olduğunu görebilirsiniz çünkü bunlara ihtiyaçları yoktur.
‫Cephaneyi ne zaman kullandığım ya da 50 kez mi yoksa bir kez mi kullandığım önemli değil,
‫çünkü gözlemlenebilir bir yan etkisi yok.
‫Peki bir fonksiyonun saf olduğunu blueprint'e nasıl gösterebiliriz?
‫Şimdi test fonksiyonuma bir göz atalım.
‫Bu yüzden olay grafiğinde veya plan bölmemde bunu seçeceğim.
‫Ve ayrıntılar bölmesinde saf etiketli bir onay kutusu olduğunu görebilirsiniz.
‫Yani bu onay kutusunu işaretlerseniz, yürütme pimlerinin kaybolduğuna dikkat edin.
‫Şimdi elimizde sadece bu fonksiyonun girdi ve çıktıları var.
‫Artık çıktıya ihtiyaç duyduğumuzda bu fonksiyon çalıştırılacaktır.
‫Yani bu çıktıyı bir yazdırma dizesine eklersem, bu işlevi yazdırma dizesinden önce çalıştıracak ve böylece
‫yazdırma dizesini çalıştırmak için zamanında sonuca sahip olacaktır.
‫Aynı şeyi yan etkilerin olmadığı, has ammo fonksiyonumuz gibi gözlemlenebilir etkilerin
‫olmadığı herhangi bir fonksiyon için de yapabiliriz.
‫Bu yüzden size has cephaneyi saf bir fonksiyon haline getirmeniz için meydan okumak istiyorum.
‫Bu yüzden onu seçin ve saf hale getirmek için onay kutusunu ayarlayın.
‫Peki şimdi yürütme akışına ne olacak?
‫Şu anda işlev üzerinden bağlanmış durumda.
‫Nereye gidiyor?
‫Videoyu duraklatın ve deneyin.
‫Tamam.
‫Tekrar hoş geldiniz.
‫Cephane seçelim.
‫Saf onay kutusunu işaretleyeceğiz ve anında yürütme pimlerinin kaybolduğunu ve daha önce has ammo üzerinden
‫akan yürütme akışının artık doğrudan dallanma deyimimize gittiğini göreceksiniz, bu da tam olarak
‫istediğimiz şeydir, şimdi has ammo, dönüş değerini elde etmek için dallanma deyimi çalıştırılır çalıştırılmaz
‫çalıştırılacaktır.
‫Bu saf onay kutusunu yalnızca bir fonksiyonun yan etkisi olmadığından emin olduğunuzda kullanın.
‫Bunun için yaygın durumlar ve kullanım örnekleri, işlevinizin sadece has ammo gibi bir değeri hesaplamaya çalıştığı
‫durumlardır.
‫İşte bu yüzden bu işlev bir fiil isimlendirme geleneğine uymuyor çünkü bir şey yapmıyor,
‫bir şey alıyor ya da bir soruyu yanıtlıyor.
‫Bu durumda, soru cephane var.
‫Aslında, Blueprint'te yapabileceğiniz ancak C++'ta yapamayacağınız bir şeyi adlandırarak
‫işlevimize küçük bir soru işareti bile koyabiliriz, bu da evet, bu işlevin bir soruyu yanıtladığını görmemizi sağlar.
‫Bir şey yapmaya çalışmıyor.
‫Çoğu zaman saf ve saf olmayan işlevler arasındaki ayrım, bir fiile uyup uymadığı veya bir
‫soruya uyup uymadığıdır.
‫Tekrar gözden geçirmek için sözlüğümüze bir göz atalım.
‫Yan etki, gördüğümüz bir işlevin gözlemlenebilir bir etkisidir ve bu işlevlerin örneklerini gördük.
‫Saf fonksiyon ise, bu alma fonksiyonları veya soru yanıtlama fonksiyonları gibi yan etkileri olmayan bir
‫fonksiyondur.
‫Bu ders için bu kadar.
‫Bir sonrakinde görüşürüz.