Merk je vaak dat je je code kopieert en plakt om deze opnieuw te gebruiken in verschillende secties van je programma?
Als dit het geval is, kunt u overwegen om functies te gebruiken. Functies zijn een zeer krachtig kenmerk van programmeertalen. Ze kunnen code efficiënter, gemakkelijker leesbaar en eleganter maken.
Wat is een functie?
Een functie is een codeblok dat een taak uitvoert. Het kan en worden genoemd meerdere keren hergebruikt. U kunt informatie doorgeven aan een functie en deze kan informatie terugsturen. Veel programmeertalen hebben ingebouwde functies die u in hun bibliotheek kunt openen, maar u kunt ook uw eigen functies maken.
Leer de basisprincipes van recursie, de essentiële maar enigszins verbijsterende tool voor programmeurs.
Wanneer u een functie aanroept, pauzeert het programma het huidige programma en voert de functie uit. De functie wordt van boven naar beneden gelezen. Zodra de functie is voltooid, gaat het programma verder waar het was gepauzeerd. Als de functie een waarde heeft geretourneerd, wordt die waarde gebruikt waar de functie werd aangeroepen.
Hoe schrijf je een functie?
Er zijn veel verschillende manieren om functies te schrijven. De exacte syntaxis is afhankelijk van de taal waarin u programmeert. We zullen voorbeelden tonen in Python, JavaScript en C ++ om een reeks programmeersyntaxis te demonstreren.
Verwant: Waarom programmeertalen niet kunnen bestaan zonder functies
Ongeldige functies
Het eerste type functie dat we zullen bekijken, is een ongeldige functie. Dit betekent simpelweg dat de functie geen waarde retourneert. Ongeldige functies worden gebruikt om een reeks instructies te voltooien. In deze voorbeelden wordt de functie die we schreven aangeroepen halloFunctie. Het doel van de functie is om "Hallo wereld" weer te geven.
TIP: geef functienamen die uitleggen wat ze doen. Het wordt gemakkelijker om functies te beheren en de code te lezen naarmate uw programma complexer wordt.
Python
def helloFunction ():
print ("Hallo wereld")
halloFunctie ()
Het sleutelwoord def wordt in Python gebruikt om een functie te definiëren en aan te maken. Vervolgens is de naam van de functie. De instructies in de functie volgen op de volgende regel na de dubbele punt. Witruimte is belangrijk in Python, dus zorg ervoor dat u alle code inspringt die u wilt dat uw functie wordt uitgevoerd. In het bovenstaande voorbeeld voert de functie één regel code uit.
Dat hebben je scherpe ogen misschien opgemerkt afdrukken() is ook een functie, maar wordt anders genoemd dan onze functie. Houd die gedachte nu vast, we zullen later functies en parameters onderzoeken.
JavaScript
functie helloFunction () {
alert ("Hallo wereld!");
}
helloFunction ();
In JavaScript is het trefwoord functie wordt gebruikt om functies te creëren. Vervolgens hebben we de naam van de functie. Elke code die tussen de accolades valt, wordt uitgevoerd wanneer de functie wordt aangeroepen.
Witruimte is niet belangrijk in JavaScript, maar het is gebruikelijk om de code in de functie te laten inspringen. Inspringen maakt code gemakkelijker te lezen, wat erg belangrijk is naarmate uw programma's complexer worden.
Opmerking: net als afdrukken() in het eerdere voorbeeld, alert () is ook een functie.
C ++
#inclusief
namespace std; gebruiken;
ongeldig helloFunction () {
cout << "Hallo wereld!";
}
int main () {
helloFunction ();
retourneer 0;
}
Functies worden anders gemaakt in C ++. In plaats van een trefwoord om een functie te definiëren, beschrijft het eerste woord het type gegevens dat de functie zal retourneren. In dit geval retourneert onze functie geen gegevens, dus de gegevens zijn ongeldig. Vervolgens hebben we de naam van de functie. Net als bij JavaScript wordt alle code tussen de accolades uitgevoerd wanneer de functie wordt aangeroepen. Net als bij JavaScript heeft witruimte geen invloed op de functie, maar is dit een goede gewoonte.
Heb je een andere functie in de C ++ -code gezien? Ja, hoofd() is een functie. Wanneer u een C ++ -programma uitvoert, roept u automatisch de hoofdfunctie op. Wanneer de hoofdfunctie met succes is voltooid, retourneert het 0 als het programma wordt afgesloten om aan te geven dat er geen fouten zijn opgetreden bij het uitvoeren van het programma.
Functies die waarden vereisen
Ongeldige functies zijn geweldig als u merkt dat u steeds hetzelfde stukje code schrijft. Maar ze kunnen beperkend zijn. Ze zijn statisch en veranderen niet. Ze volgen altijd dezelfde instructies. Een manier waarop we hun bruikbaarheid kunnen vergroten, is door verschillende waarden aan de functie door te geven.
Het zal u zijn opgevallen dat er haakjes achter de namen van al onze functies staan. Tussen haakjes kunnen we aangeven dat er gegevens nodig zijn om onze functie uit te voeren. Vervolgens kunnen we de gegevens gebruiken die zijn doorgegeven aan onze functie in de functie. Laten we de vorige voorbeelden nog eens bekijken, maar deze keer de zin doorgeven die we willen laten uitvoeren.
Python
def helloFunction (newPhrase):
print (newPhrase)
helloFunction ("Onze nieuwe zin")
Nu, tussen de haakjes, verklaart onze functie dat het een variabele nodig heeft om te worden uitgevoerd. We hebben de variabele een naam gegeven newPhrase en kunnen het nu gebruiken in onze functie. Wanneer we de functie aanroepen, moeten we de gevraagde informatie doorgeven door deze tussen de haakjes te plaatsen. Dezelfde wijzigingen zijn aangebracht in JavaScript.
JavaScript
functie halloFunction (newPhrase) {
alert (newPhrase);
}
helloFunction ("Onze nieuwe zin");
C ++
#inclusief
namespace std; gebruiken;
void helloFunction (string newPhrase) {
cout << newPhrase;
}
int main () {
helloFunction ("Onze nieuwe zin");
retourneer 0;
}
Onze C ++ -functie vereiste wat meer informatie. We weten dat uw functie stringgegevens wil, maar dat is niet goed genoeg voor C ++. Wanneer u uw functie maakt, moet u aangeven welk type gegevens uw functie nodig heeft. Als u niet het juiste type gegevens verzendt, veroorzaakt de functie een fout.
Dit lijkt misschien een beetje vervelend, maar strikte talen kunnen u vaak hoofdpijn besparen. Als u een functie in JavaScript schrijft die een geheel getal vereist, maar het nummer wordt als een string verzonden, kan dit een bug veroorzaken die zeer moeilijk op te sporen is.
Verwant: 5 functionele programmeertalen die u moet kennen
Functies die een waarde retourneren
De laatste functie die we zullen behandelen, is het retourneren van gegevens. Dit is vooral waardevol als u gegevens wilt wijzigen voordat u deze gebruikt. Hoewel je dat inline zou kunnen schrijven, kan het logischer zijn om het als een functie te schrijven als je dezelfde berekeningen vaak zult gebruiken, zoals het omzetten van imperiaal naar metrisch. Ons voorbeeld zal eenvoudiger zijn. Onze functie vereist twee gehele getallen en retourneert de som.
Python
def addFunctie (a, b):
retourneer a + b
print (addFunction (2, 4))
In dit voorbeeld heeft onze functie twee variabelen nodig in plaats van één. We geven dat aan door onze variabelenamen te scheiden met een komma. Het sleutelwoord terugkeer vertelt de functie om de volgende gegevens te retourneren, in dit geval 2 + 4 of 6. We noemen de functie binnen de afdrukken() functie.
Zodra ons programma op die regel kwam, zou het zijn gepauzeerd, onze functie hebben uitgevoerd en vervolgens zijn voortgezet alsof addFunction (2, 4) was eigenlijk gewoon de geretourneerde waarde 6.
JavaScript
De JavaScript-code lijkt erg op de Python-code. Het belangrijkste verschil is dat de functie wordt aangeroepen in een waarschuwing.
functie addFunction (a, b) {
retourneer a + b;
}
alert (addFunction (2, 4));
C ++
#inclusief
namespace std; gebruiken;
int addFunction (int a, int b) {
retourneer a + b;
}
int main () {
cout << addFunction (2, 4);
retourneer 0;
}
De C ++ - code werkt op dezelfde manier, maar vereist zoals gewoonlijk wat meer informatie. Ten eerste moeten we zeggen welk type gegevens onze functie zal retourneren. Dat zul je zien leegte is gewijzigd in int. Dit betekent dat in plaats van geen gegevens te retourneren, onze functie een geheel getal retourneert. Verder is de code vergelijkbaar met de code die we al hebben onderzocht.
Beheer uw functies
Het leuke van functies is dat functies andere functies kunnen aanroepen. Ze mogen zichzelf zelfs bellen! Maar met grote kracht komt een grote verantwoordelijkheid. Wees niet gek door code te maken met functies die andere functies aanroepen die nog meer functies aanroepen.
Zoals vermeld, pauzeert het programma elke keer dat een functie wordt aangeroepen terwijl het de functie uitvoert. Dit betekent dat het programma wordt vastgehouden in het actieve geheugen. Als u meerdere functies oproept zonder ze te voltooien, gebruikt u meer actief geheugen. Als u niet oppast, kan uw programma uit de hand lopen.
Globale variabelen lijken misschien eenvoudig, maar ze zijn vaak de oorzaak van zoveel bugs. Hier leest u hoe u uw code kunt stroomlijnen met inkapseling.
- Programmeren
- Programmeren
- Functioneel programmeren

J. Seaton is een wetenschapsjournalist die gespecialiseerd is in het opsplitsen van complexe onderwerpen. Ze is gepromoveerd aan de Universiteit van Saskatchewan; haar onderzoek was gericht op het gebruik van game-based learning om de betrokkenheid van studenten online te vergroten. Als ze niet aan het werk is, zul je haar zien lezen, videogames spelen of tuinieren.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Nog een stap…!
Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.