‫Hallo en welkom.
‫In deze lezing gaan we leren hoe we uitvoeringspinnen uit onze eigen functies kunnen verwijderen en hoe en
‫wanneer het een goed idee is om dit te doen.
‫Laten we erin duiken.
‫Dus het is een beetje raar dat onze munitiefunctie nu uitvoeringspinnen heeft terwijl we dat voorheen niet
‫nodig hadden en dat maakte onze code een beetje slechter.
‫Dus wat is dat?
‫Waarom is dat gebeurd?
‫En waarom hebben sommige functieknooppunten uitvoeringspinnen nodig en andere niet?
‫Nou, het komt allemaal neer op iets dat een bijwerking wordt genoemd.
‫Dus wat is een bijwerking?
‫In wezen is een bijwerking wanneer een functie een soort waarneembaar effect heeft nadat deze is
‫uitgevoerd.
‫Nu, wat bedoel ik hiermee?
‫Laten we eens kijken naar enkele voorbeelden van functies met bijwerkingen, zodat u de
‫afdrukreeks kunt begrijpen nadat u deze hebt uitgevoerd.
‫Print string is vrij duidelijk dat er iets is gebeurd want er staat nu een string op je scherm.
‫Je kunt zien dat er een string is die een impuls toevoegt die duidelijk een waarneembaar effect heeft,
‫want plotseling vliegt het ding waaraan je impuls hebt toegevoegd weg in de verte set munitie heeft geen waarneembaar
‫effect omdat nadat je munitie hebt ingesteld, de waarde in die variabele is veranderd.
‫Nu vraag je je misschien af, nou ja, elke functie heeft zeker een waarneembaar effect.
‫Wat heeft het anders voor zin?
‫Nou, niet helemaal.
‫Er zijn zoiets als pure functies.
‫Wat een pure functie is, is in feite een functie zonder bijwerkingen.
‫Het heeft echter wel retourwaarden.
‫Er komen dus waarden uit die functie.
‫En dat is het hele doel van de functie om die waarden te berekenen en te geven.
‫Dus nogmaals, laten we eens kijken naar enkele voorbeelden, want dit zal het een stuk duidelijker maken.
‫Pak munitie.
‫Dat is een pure functie.
‫Het heeft geen bijwerkingen omdat je zo vaak munitie kunt krijgen als je wilt.
‫En tenzij je iets doet met de waarde die je eruit hebt gehaald, je programma, je spel zal
‫niet anders zijn.
‫Je kunt gewoon de hele tijd munitie blijven krijgen, helemaal door je spel en er zal niets
‫anders waarneembaar zijn aan je spel.
‫Activeer voorwaartse vector.
‫Dat is er nog een waar je het zo vaak kunt krijgen als je wilt.
‫Het gaat niets veranderen totdat je iets doet met de geretourneerde waarde en al
‫deze wiskundige functies zoals vermenigvuldigen minus groter.
‫Al deze knooppunten hebben geen effect op uw project totdat hun resultaten voor een groter doel worden
‫gebruikt.
‫Dit worden dus pure functies genoemd, en je kunt waarschijnlijk zien dat dit precies de knooppunten zijn
‫die geen uitvoeringspinnen hadden omdat ze ze niet nodig hebben.
‫Het maakt niet uit wanneer ik munitie haal of dat ik het 50 keer per keer gebruik, het
‫maakt niet uit omdat het geen waarneembare bijwerkingen heeft.
‫Dus hoe kunnen we een blauwdruk aangeven dat een functie puur is?
‫Laten we eens kijken naar mijn testfunctie hier.
‫Dus ik ga het selecteren in de gebeurtenisgrafiek of in het mijn blauwdrukvenster.
‫En je kunt zien dat er in het detailvenster een selectievakje is met het label puur.
‫Dus als u dat selectievakje aanvinkt, ziet u dat de uitvoeringspatronen zojuist zijn verdwenen.
‫En alles wat we nu hebben zijn de in- en uitgangen van deze functie.
‫Nu wordt deze functie uitgevoerd wanneer we de uitvoer nodig hebben.
‫Dus als ik deze uitvoer in een printstring steek, dan zal deze functie vóór de printstring worden
‫uitgevoerd.
‫Het heeft dus het resultaat op tijd om de printstring uit te voeren.
‫We kunnen hetzelfde doen met elke functie waar er geen bijwerkingen zijn, waar
‫er geen waarneembare effecten zijn, zoals onze munitiefunctie.
‫Dus ik daag je uit om van munitie een pure functie te maken.
‫Dus selecteer het en schakel dat selectievakje in om het puur te maken.
‫En wat gebeurt er nu met de uitvoeringsstroom.
‫Wat momenteel was aangesloten via de functie.
‫Waar gaat het naartoe?
‫Pauzeer de video en probeer het.
‫Oké.
‫Welkom terug.
‫Dus laten we selecteren heeft munitie, we zullen het pure selectievakje aanvinken en je ziet meteen
‫dat de uitvoeringspinnen verdwijnen en de uitvoeringsstroom die eerder door munitie stroomde, gaat nu rechtstreeks door naar
‫onze vertakkingsverklaring, wat precies is wat we nu willen heeft munitie wordt gewoon uitgevoerd zodra
‫de branch-instructie wordt uitgevoerd om de retourwaarde te bemachtigen.
‫Waarschuwing: gebruik dit pure selectievakje alleen als u zeker weet dat een functie geen bijwerkingen heeft.
‫Veelvoorkomende gevallen en gebruiksscenario's hiervoor zijn wanneer uw functie gewoon probeert een waarde te berekenen,
‫zoals munitie.
‫En daarom volgt deze functie niet de conventie van het hebben van een werkwoordsnaam omdat het iets
‫niet doet, iets krijgt of een vraag beantwoordt.
‫In dit geval is de vraag of hij munitie heeft.
‫En in feite zouden we zelfs een klein vraagteken in onze functie kunnen plaatsen, iets noemen dat je
‫in Blueprint kunt doen wat je niet kunt doen in C++, wat ons in staat stelt te zien dat, ja, deze functie een
‫vraag beantwoordt.
‫Het is niet proberen iets te doen.
‫Zo vaak is het onderscheid tussen zuivere en niet-zuivere functies of het bij een werkwoord
‫past of bij een vraag.
‫Laten we dus ter beoordeling onze woordenlijst eens bekijken.
‫Een bijwerking is een waarneembaar effect van een functie die we hebben gezien en we hebben voorbeelden gezien van die functies.
‫En een pure functie is een functie zonder bijwerkingen, zoals deze krijgsfuncties of
‫vraagbeantwoordingsfuncties.
‫Dat was het voor deze lezing.
‫Ik zie wel in de volgende.