﻿1
00:00:04,330 --> 00:00:05,470
‫Hallo en welkom.

2
00:00:05,470 --> 00:00:11,620
‫In deze lezing gaan we leren hoe we uitvoeringspinnen uit onze eigen functies kunnen verwijderen en hoe en

3
00:00:11,920 --> 00:00:15,610
‫wanneer het een goed idee is om dit te doen.

4
00:00:15,730 --> 00:00:16,420
‫Laten we erin duiken.

5
00:00:17,050 --> 00:00:23,470
‫Dus het is een beetje raar dat onze munitiefunctie nu uitvoeringspinnen heeft terwijl we dat voorheen niet

6
00:00:23,470 --> 00:00:27,400
‫nodig hadden en dat maakte onze code een beetje slechter.

7
00:00:27,700 --> 00:00:29,050
‫Dus wat is dat?

8
00:00:29,050 --> 00:00:30,190
‫Waarom is dat gebeurd?

9
00:00:30,190 --> 00:00:35,530
‫En waarom hebben sommige functieknooppunten uitvoeringspinnen nodig en andere niet?

10
00:00:35,740 --> 00:00:39,700
‫Nou, het komt allemaal neer op iets dat een bijwerking wordt genoemd.

11
00:00:39,820 --> 00:00:41,950
‫Dus wat is een bijwerking?

12
00:00:42,220 --> 00:00:49,480
‫In wezen is een bijwerking wanneer een functie een soort waarneembaar effect heeft nadat deze is

13
00:00:49,480 --> 00:00:49,990
‫uitgevoerd.

14
00:00:50,470 --> 00:00:52,040
‫Nu, wat bedoel ik hiermee?

15
00:00:52,060 --> 00:00:56,990
‫Laten we eens kijken naar enkele voorbeelden van functies met bijwerkingen, zodat u de

16
00:00:57,010 --> 00:00:59,980
‫afdrukreeks kunt begrijpen nadat u deze hebt uitgevoerd.

17
00:00:59,980 --> 00:01:05,830
‫Print string is vrij duidelijk dat er iets is gebeurd want er staat nu een string op je scherm.

18
00:01:05,830 --> 00:01:12,400
‫Je kunt zien dat er een string is die een impuls toevoegt die duidelijk een waarneembaar effect heeft,

19
00:01:12,400 --> 00:01:19,360
‫want plotseling vliegt het ding waaraan je impuls hebt toegevoegd weg in de verte set munitie heeft geen waarneembaar

20
00:01:19,360 --> 00:01:25,090
‫effect omdat nadat je munitie hebt ingesteld, de waarde in die variabele is veranderd.

21
00:01:25,240 --> 00:01:29,290
‫Nu vraag je je misschien af, nou ja, elke functie heeft zeker een waarneembaar effect.

22
00:01:29,290 --> 00:01:31,270
‫Wat heeft het anders voor zin?

23
00:01:31,720 --> 00:01:32,710
‫Nou, niet helemaal.

24
00:01:32,710 --> 00:01:35,560
‫Er zijn zoiets als pure functies.

25
00:01:35,560 --> 00:01:41,020
‫Wat een pure functie is, is in feite een functie zonder bijwerkingen.

26
00:01:41,200 --> 00:01:44,890
‫Het heeft echter wel retourwaarden.

27
00:01:45,130 --> 00:01:47,350
‫Er komen dus waarden uit die functie.

28
00:01:47,350 --> 00:01:53,650
‫En dat is het hele doel van de functie om die waarden te berekenen en te geven.

29
00:01:53,890 --> 00:01:57,010
‫Dus nogmaals, laten we eens kijken naar enkele voorbeelden, want dit zal het een stuk duidelijker maken.

30
00:01:57,580 --> 00:01:58,420
‫Pak munitie.

31
00:01:58,540 --> 00:02:01,030
‫Dat is een pure functie.

32
00:02:01,030 --> 00:02:06,490
‫Het heeft geen bijwerkingen omdat je zo vaak munitie kunt krijgen als je wilt.

33
00:02:06,700 --> 00:02:12,910
‫En tenzij je iets doet met de waarde die je eruit hebt gehaald, je programma, je spel zal

34
00:02:12,910 --> 00:02:14,350
‫niet anders zijn.

35
00:02:14,350 --> 00:02:20,260
‫Je kunt gewoon de hele tijd munitie blijven krijgen, helemaal door je spel en er zal niets

36
00:02:20,260 --> 00:02:22,600
‫anders waarneembaar zijn aan je spel.

37
00:02:22,750 --> 00:02:24,850
‫Activeer voorwaartse vector.

38
00:02:24,850 --> 00:02:27,700
‫Dat is er nog een waar je het zo vaak kunt krijgen als je wilt.

39
00:02:27,700 --> 00:02:34,300
‫Het gaat niets veranderen totdat je iets doet met de geretourneerde waarde en al

40
00:02:34,300 --> 00:02:37,660
‫deze wiskundige functies zoals vermenigvuldigen minus groter.

41
00:02:37,930 --> 00:02:46,390
‫Al deze knooppunten hebben geen effect op uw project totdat hun resultaten voor een groter doel worden

42
00:02:46,390 --> 00:02:47,110
‫gebruikt.

43
00:02:47,350 --> 00:02:53,230
‫Dit worden dus pure functies genoemd, en je kunt waarschijnlijk zien dat dit precies de knooppunten zijn

44
00:02:53,230 --> 00:02:56,830
‫die geen uitvoeringspinnen hadden omdat ze ze niet nodig hebben.

45
00:02:56,830 --> 00:03:04,300
‫Het maakt niet uit wanneer ik munitie haal of dat ik het 50 keer per keer gebruik, het

46
00:03:04,300 --> 00:03:08,080
‫maakt niet uit omdat het geen waarneembare bijwerkingen heeft.

47
00:03:08,620 --> 00:03:13,300
‫Dus hoe kunnen we een blauwdruk aangeven dat een functie puur is?

48
00:03:13,750 --> 00:03:16,120
‫Laten we eens kijken naar mijn testfunctie hier.

49
00:03:16,120 --> 00:03:20,560
‫Dus ik ga het selecteren in de gebeurtenisgrafiek of in het mijn blauwdrukvenster.

50
00:03:21,100 --> 00:03:25,860
‫En je kunt zien dat er in het detailvenster een selectievakje is met het label puur.

51
00:03:25,870 --> 00:03:31,120
‫Dus als u dat selectievakje aanvinkt, ziet u dat de uitvoeringspatronen zojuist zijn verdwenen.

52
00:03:31,120 --> 00:03:35,140
‫En alles wat we nu hebben zijn de in- en uitgangen van deze functie.

53
00:03:35,560 --> 00:03:40,060
‫Nu wordt deze functie uitgevoerd wanneer we de uitvoer nodig hebben.

54
00:03:40,060 --> 00:03:46,690
‫Dus als ik deze uitvoer in een printstring steek, dan zal deze functie vóór de printstring worden

55
00:03:46,690 --> 00:03:47,140
‫uitgevoerd.

56
00:03:47,260 --> 00:03:51,610
‫Het heeft dus het resultaat op tijd om de printstring uit te voeren.

57
00:03:52,030 --> 00:03:57,640
‫We kunnen hetzelfde doen met elke functie waar er geen bijwerkingen zijn, waar

58
00:03:57,640 --> 00:04:01,360
‫er geen waarneembare effecten zijn, zoals onze munitiefunctie.

59
00:04:01,420 --> 00:04:06,010
‫Dus ik daag je uit om van munitie een pure functie te maken.

60
00:04:06,430 --> 00:04:09,880
‫Dus selecteer het en schakel dat selectievakje in om het puur te maken.

61
00:04:10,450 --> 00:04:14,320
‫En wat gebeurt er nu met de uitvoeringsstroom.

62
00:04:14,320 --> 00:04:17,200
‫Wat momenteel was aangesloten via de functie.

63
00:04:17,470 --> 00:04:18,340
‫Waar gaat het naartoe?

64
00:04:18,730 --> 00:04:20,530
‫Pauzeer de video en probeer het.

65
00:04:23,780 --> 00:04:24,350
‫Oké.

66
00:04:24,350 --> 00:04:25,160
‫Welkom terug.

67
00:04:25,460 --> 00:04:32,780
‫Dus laten we selecteren heeft munitie, we zullen het pure selectievakje aanvinken en je ziet meteen

68
00:04:32,780 --> 00:04:40,280
‫dat de uitvoeringspinnen verdwijnen en de uitvoeringsstroom die eerder door munitie stroomde, gaat nu rechtstreeks door naar

69
00:04:40,280 --> 00:04:47,090
‫onze vertakkingsverklaring, wat precies is wat we nu willen heeft munitie wordt gewoon uitgevoerd zodra

70
00:04:47,090 --> 00:04:51,740
‫de branch-instructie wordt uitgevoerd om de retourwaarde te bemachtigen.

71
00:04:51,860 --> 00:05:00,230
‫Waarschuwing: gebruik dit pure selectievakje alleen als u zeker weet dat een functie geen bijwerkingen heeft.

72
00:05:00,590 --> 00:05:08,120
‫Veelvoorkomende gevallen en gebruiksscenario's hiervoor zijn wanneer uw functie gewoon probeert een waarde te berekenen,

73
00:05:08,120 --> 00:05:09,140
‫zoals munitie.

74
00:05:09,260 --> 00:05:17,450
‫En daarom volgt deze functie niet de conventie van het hebben van een werkwoordsnaam omdat het iets

75
00:05:17,450 --> 00:05:21,920
‫niet doet, iets krijgt of een vraag beantwoordt.

76
00:05:21,920 --> 00:05:24,500
‫In dit geval is de vraag of hij munitie heeft.

77
00:05:24,740 --> 00:05:29,420
‫En in feite zouden we zelfs een klein vraagteken in onze functie kunnen plaatsen, iets noemen dat je

78
00:05:29,420 --> 00:05:35,330
‫in Blueprint kunt doen wat je niet kunt doen in C++, wat ons in staat stelt te zien dat, ja, deze functie een

79
00:05:35,330 --> 00:05:36,020
‫vraag beantwoordt.

80
00:05:36,020 --> 00:05:37,790
‫Het is niet proberen iets te doen.

81
00:05:37,790 --> 00:05:44,210
‫Zo vaak is het onderscheid tussen zuivere en niet-zuivere functies of het bij een werkwoord

82
00:05:44,210 --> 00:05:46,430
‫past of bij een vraag.

83
00:05:46,460 --> 00:05:48,920
‫Laten we dus ter beoordeling onze woordenlijst eens bekijken.

84
00:05:49,370 --> 00:05:56,420
‫Een bijwerking is een waarneembaar effect van een functie die we hebben gezien en we hebben voorbeelden gezien van die functies.

85
00:05:56,780 --> 00:06:03,950
‫En een pure functie is een functie zonder bijwerkingen, zoals deze krijgsfuncties of

86
00:06:03,950 --> 00:06:05,000
‫vraagbeantwoordingsfuncties.

87
00:06:05,480 --> 00:06:06,560
‫Dat was het voor deze lezing.

88
00:06:06,650 --> 00:06:07,850
‫Ik zie wel in de volgende.

