﻿1
00:00:04,270 --> 00:00:05,530
‫Merhaba ve hoş geldiniz.

2
00:00:05,530 --> 00:00:11,830
‫Bu derste, kendi fonksiyonlarımızdan yürütme pinlerini nasıl kaldırabileceğimizi ve bunu yapmanın

3
00:00:11,830 --> 00:00:15,760
‫nasıl ve ne zaman iyi bir fikir olduğunu öğreneceğiz.

4
00:00:15,760 --> 00:00:16,690
‫Hadi içeri dalalım.

5
00:00:16,960 --> 00:00:23,560
‫Dolayısıyla, has ammo fonksiyonumuzun daha önce buna ihtiyacımız yokken şimdi yürütme pinlerine sahip olması

6
00:00:23,560 --> 00:00:27,610
‫biraz garip ve bu da kodumuzu biraz daha kötü hale getirdi.

7
00:00:27,610 --> 00:00:29,110
‫Peki bu nedir?

8
00:00:29,110 --> 00:00:35,710
‫Bu neden oldu ve neden bazı işlev düğümleri yürütme pinlerine ihtiyaç duyarken diğerleri duymuyor?

9
00:00:35,710 --> 00:00:39,850
‫Her şey yan etki denen bir şeye bağlı.

10
00:00:39,850 --> 00:00:42,250
‫Peki yan etki nedir?

11
00:00:42,250 --> 00:00:50,260
‫Esasen yan etki, bir fonksiyonun çalıştırıldıktan sonra bir tür gözlemlenebilir etkiye sahip olmasıdır.

12
00:00:50,350 --> 00:00:52,090
‫Şimdi, bununla ne demek istiyorum?

13
00:00:52,090 --> 00:00:57,060
‫Print, print, string kavramlarını anlayabilmeniz için yan etkileri olan bazı fonksiyon örneklerine

14
00:00:57,400 --> 00:00:58,420
‫bir göz atalım.

15
00:00:58,870 --> 00:01:01,090
‫Yazdırma dizesini çalıştırdıktan sonra.

16
00:01:01,090 --> 00:01:05,860
‫Bir şey olduğu oldukça açık çünkü artık ekranınızda bir dize var.

17
00:01:05,860 --> 00:01:12,490
‫Açıkça gözlemlenebilir bir etkiye sahip olan bir dizi itki eklendiğini görebilirsiniz çünkü

18
00:01:12,490 --> 00:01:16,960
‫aniden itki eklediğiniz şey uzaklara doğru uçmaya başlar.

19
00:01:17,440 --> 00:01:25,210
‫Cephaneyi ayarlamanın gözlemlenebilir bir etkisi vardır çünkü cephaneyi ayarladıktan sonra bu değişkendeki değer değişmiştir.

20
00:01:25,210 --> 00:01:29,320
‫Şimdi bu noktada, her işlevin gözlemlenebilir bir etkisi olduğunu merak ediyor olabilirsiniz.

21
00:01:29,320 --> 00:01:31,540
‫Aksi takdirde, bunun ne anlamı var?

22
00:01:31,600 --> 00:01:32,740
‫Pek sayılmaz.

23
00:01:32,740 --> 00:01:35,590
‫Saf işlevler diye bir şey vardır.

24
00:01:35,590 --> 00:01:37,600
‫Saf fonksiyon nedir?

25
00:01:38,200 --> 00:01:41,170
‫Temelde yan etkisi olmayan bir işlevdir.

26
00:01:41,170 --> 00:01:45,040
‫Ancak, geri dönüş değerleri vardır.

27
00:01:45,040 --> 00:01:47,380
‫Yani bu fonksiyondan çıkan değerler vardır.

28
00:01:47,380 --> 00:01:53,830
‫Fonksiyonun tüm amacı da bu değerleri hesaplamak ve bize vermektir.

29
00:01:53,830 --> 00:01:57,250
‫Şimdi yine bazı örneklere bakalım, çünkü bu konuyu çok daha açık hale getirecektir.

30
00:01:57,520 --> 00:01:58,570
‫Cephane al.

31
00:01:58,570 --> 00:02:01,090
‫Bu saf bir işlevdir.

32
00:02:01,090 --> 00:02:06,640
‫Hiçbir yan etkisi yoktur çünkü istediğiniz kadar cephane alabilirsiniz.

33
00:02:06,640 --> 00:02:12,940
‫Ve bundan elde ettiğiniz değerle bir şey yapmadığınız sürece, programınız, oyununuz farklı

34
00:02:12,940 --> 00:02:14,380
‫olmayacaktır.

35
00:02:14,380 --> 00:02:20,320
‫Oyununuz boyunca her zaman cephane almaya devam edebilirsiniz ve oyununuzda gözlemlenebilir

36
00:02:20,320 --> 00:02:22,780
‫hiçbir değişiklik olmayacaktır.

37
00:02:22,810 --> 00:02:24,910
‫Aktif ileri vektörü alın.

38
00:02:24,910 --> 00:02:27,730
‫Bu da istediğiniz kadar alabileceğiniz başka bir şey.

39
00:02:27,730 --> 00:02:34,330
‫Dönen değerle ve çarpma eksiltme gibi tüm bu matematiksel işlevlerle bir şey yapana

40
00:02:34,330 --> 00:02:37,900
‫kadar hiçbir şeyi değiştirmeyecektir.

41
00:02:37,900 --> 00:02:47,260
‫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.

42
00:02:47,260 --> 00:02:53,290
‫Bunlara saf fonksiyonlar denir ve muhtemelen bunların tam olarak herhangi bir yürütme pini olmayan düğümler

43
00:02:53,290 --> 00:02:56,920
‫olduğunu görebilirsiniz çünkü bunlara ihtiyaçları yoktur.

44
00:02:56,920 --> 00:03:04,330
‫Cephaneyi ne zaman kullandığım ya da 50 kez mi yoksa bir kez mi kullandığım önemli değil,

45
00:03:04,330 --> 00:03:08,320
‫çünkü gözlemlenebilir bir yan etkisi yok.

46
00:03:08,560 --> 00:03:13,540
‫Peki bir fonksiyonun saf olduğunu blueprint'e nasıl gösterebiliriz?

47
00:03:13,660 --> 00:03:16,150
‫Şimdi test fonksiyonuma bir göz atalım.

48
00:03:16,150 --> 00:03:20,800
‫Bu yüzden olay grafiğinde veya plan bölmemde bunu seçeceğim.

49
00:03:21,010 --> 00:03:25,870
‫Ve ayrıntılar bölmesinde saf etiketli bir onay kutusu olduğunu görebilirsiniz.

50
00:03:25,870 --> 00:03:31,150
‫Yani bu onay kutusunu işaretlerseniz, yürütme pimlerinin kaybolduğuna dikkat edin.

51
00:03:31,150 --> 00:03:35,410
‫Şimdi elimizde sadece bu fonksiyonun girdi ve çıktıları var.

52
00:03:35,410 --> 00:03:40,120
‫Artık çıktıya ihtiyaç duyduğumuzda bu fonksiyon çalıştırılacaktır.

53
00:03:40,120 --> 00:03:46,750
‫Yani bu çıktıyı bir yazdırma dizesine eklersem, bu işlevi yazdırma dizesinden önce çalıştıracak ve böylece

54
00:03:46,750 --> 00:03:51,910
‫yazdırma dizesini çalıştırmak için zamanında sonuca sahip olacaktır.

55
00:03:51,910 --> 00:03:57,700
‫Aynı şeyi yan etkilerin olmadığı, has ammo fonksiyonumuz gibi gözlemlenebilir etkilerin

56
00:03:57,700 --> 00:04:01,450
‫olmadığı herhangi bir fonksiyon için de yapabiliriz.

57
00:04:01,450 --> 00:04:06,280
‫Bu yüzden size has cephaneyi saf bir fonksiyon haline getirmeniz için meydan okumak istiyorum.

58
00:04:06,280 --> 00:04:10,150
‫Bu yüzden onu seçin ve saf hale getirmek için onay kutusunu ayarlayın.

59
00:04:10,360 --> 00:04:14,380
‫Peki şimdi yürütme akışına ne olacak?

60
00:04:14,380 --> 00:04:17,380
‫Şu anda işlev üzerinden bağlanmış durumda.

61
00:04:17,380 --> 00:04:18,600
‫Nereye gidiyor?

62
00:04:18,610 --> 00:04:20,770
‫Videoyu duraklatın ve deneyin.

63
00:04:23,870 --> 00:04:24,410
‫Tamam.

64
00:04:24,410 --> 00:04:25,360
‫Tekrar hoş geldiniz.

65
00:04:25,370 --> 00:04:27,460
‫Cephane seçelim.

66
00:04:27,470 --> 00:04:34,760
‫Saf onay kutusunu işaretleyeceğiz ve anında yürütme pimlerinin kaybolduğunu ve daha önce has ammo üzerinden

67
00:04:34,760 --> 00:04:41,360
‫akan yürütme akışının artık doğrudan dallanma deyimimize gittiğini göreceksiniz, bu da tam olarak

68
00:04:41,360 --> 00:04:48,770
‫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

69
00:04:48,770 --> 00:04:51,820
‫çalıştırılacaktır.

70
00:04:51,830 --> 00:05:00,500
‫Bu saf onay kutusunu yalnızca bir fonksiyonun yan etkisi olmadığından emin olduğunuzda kullanın.

71
00:05:00,500 --> 00:05:08,180
‫Bunun için yaygın durumlar ve kullanım örnekleri, işlevinizin sadece has ammo gibi bir değeri hesaplamaya çalıştığı

72
00:05:08,180 --> 00:05:09,290
‫durumlardır.

73
00:05:09,290 --> 00:05:17,540
‫İşte bu yüzden bu işlev bir fiil isimlendirme geleneğine uymuyor çünkü bir şey yapmıyor,

74
00:05:17,540 --> 00:05:21,980
‫bir şey alıyor ya da bir soruyu yanıtlıyor.

75
00:05:21,980 --> 00:05:24,680
‫Bu durumda, soru cephane var.

76
00:05:24,680 --> 00:05:29,330
‫Aslında, Blueprint'te yapabileceğiniz ancak C++'ta yapamayacağınız bir şeyi adlandırarak

77
00:05:29,330 --> 00:05:36,080
‫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.

78
00:05:36,080 --> 00:05:37,850
‫Bir şey yapmaya çalışmıyor.

79
00:05:37,850 --> 00:05:44,270
‫Çoğu zaman saf ve saf olmayan işlevler arasındaki ayrım, bir fiile uyup uymadığı veya bir

80
00:05:44,270 --> 00:05:46,490
‫soruya uyup uymadığıdır.

81
00:05:46,490 --> 00:05:49,160
‫Tekrar gözden geçirmek için sözlüğümüze bir göz atalım.

82
00:05:49,430 --> 00:05:56,660
‫Yan etki, gördüğümüz bir işlevin gözlemlenebilir bir etkisidir ve bu işlevlerin örneklerini gördük.

83
00:05:56,660 --> 00:06:04,010
‫Saf fonksiyon ise, bu alma fonksiyonları veya soru yanıtlama fonksiyonları gibi yan etkileri olmayan bir

84
00:06:04,010 --> 00:06:05,270
‫fonksiyondur.

85
00:06:05,390 --> 00:06:06,680
‫Bu ders için bu kadar.

86
00:06:06,680 --> 00:06:08,120
‫Bir sonrakinde görüşürüz.

