Finder du dig selv ofte at kopiere og indsætte din kode til genbrug i forskellige sektioner i dit program?
I så fald kan du overveje at bruge funktioner. Funktioner er en meget stærk funktion i programmeringssprog. De kan gøre koden mere effektiv, lettere at læse og elegant.
Hvad er en funktion?
En funktion er en blok kode, der udfører en opgave. Det kan kaldes og genbruges flere gange. Du kan videregive oplysninger til en funktion, og den kan sende information tilbage. Mange programmeringssprog har indbyggede funktioner, som du kan få adgang til i deres bibliotek, men du kan også oprette dine egne funktioner.
Lær det grundlæggende i rekursion, det essentielle, men let mind-bending værktøj til programmører.
Når du ringer til en funktion, stopper programmet det aktuelle program og udfører funktionen. Funktionen læses fra top til bund. Når funktionen er afsluttet, kører programmet fortsat, hvor det var sat på pause. Hvis funktionen returnerede en værdi, bruges den værdi, hvor funktionen blev kaldt.
Hvordan skriver du en funktion?
Der er mange forskellige måder at skrive funktioner på. Den nøjagtige syntaks afhænger af det sprog, du programmerer på. Vi viser eksempler i Python, JavaScript og C ++ for at demonstrere en række programmeringssyntaks.
Relaterede: Hvorfor programmeringssprog ikke kan eksistere uden funktioner
Ugyldige funktioner
Den første type funktion, som vi vil se på, er en ugyldig funktion. Dette betyder simpelthen, at funktionen ikke returnerer en værdi. Annulleringsfunktioner bruges til at fuldføre et sæt instruktioner. I disse eksempler kaldes den funktion, vi skrev hejFunktion. Formålet med funktionen er at udsende "Hello World".
TIP: Giv funktioner navne, der forklarer, hvad de laver. Det bliver lettere at styre funktioner og læse koden, når dit program bliver mere komplekst.
Python
def helloFunction ():
print ("Hello World")
hejFunktion ()
Nøgleordet def bruges i Python til at definere og oprette en funktion. Dernæst er funktionens navn. Instruktionerne i funktionen følger på den næste linje efter tyktarmen. Hvid plads betyder noget i Python, så sørg for at indrykke al den kode, som du vil have din funktion til at køre. I eksemplet ovenfor kører funktionen en linje kode.
Dine skarpe øjne har måske bemærket det Print() er også en funktion, men den kaldes anderledes end vores funktion. Hold fast ved den tanke lige nu, vi vil udforske funktioner vil parametre senere.
JavaScript
funktion helloFunction () {
alarm ("Hello World!");
}
helloFunction ();
I JavaScript er nøgleordet fungere bruges til at oprette funktioner. Dernæst har vi navnet på funktionen. Enhver kode, der falder mellem de krøllede parenteser, køres, når funktionen kaldes.
Hvid plads er ikke vigtig i JavaScript, men det er almindeligt at indrykke koden i funktionen. Indrykning gør koden lettere at læse, hvilket er meget vigtigt, da dine programmer bliver mere komplekse.
Bemærk: Meget ligesom Print() i det tidligere eksempel alert() er også en funktion.
C ++
#omfatte
ved hjælp af namespace std;
ugyldigt helloFunction () {
cout << "Hej verden!";
}
int main () {
helloFunction ();
returnere 0;
}
Funktioner oprettes forskelligt i C ++. I stedet for et nøgleord, der definerer en funktion, beskriver det første ord typen af data, som funktionen returnerer. I dette tilfælde returnerer vores funktion ingen data, så dataene er ugyldige. Dernæst har vi funktionens navn. I lighed med JavaScript køres al kode mellem de krøllede parenteser, når funktionen kaldes. Også på samme måde som JavaScript påvirker hvidt mellemrum ikke funktionen, men det er god praksis.
Har du fundet en anden funktion i C ++ - koden? Ja, hoved () er en funktion. Når du udfører et C ++ - program, kalder du automatisk på hovedfunktionen. Når hovedfunktionen er fuldført, returnerer den 0, da den afslutter programmet for at signalere, at der ikke var nogen fejl, der kørte programmet.
Funktioner, der kræver værdier
Ugyldige funktioner er gode, hvis du finder ud af, at du skriver den samme bit kode igen og igen. Men de kan være begrænsende. De er statiske og ændrer sig ikke. De udfylder altid de samme instruktioner. En måde, hvorpå vi kan øge deres anvendelighed, er at videregive forskellige værdier til funktionen.
Du har bemærket, at parenteser fulgte navnene på alle vores funktioner. I parentes kan vi erklære, at data er nødvendige for at køre vores funktion. Derefter kan vi bruge de data, der sendes til vores funktion i funktionen. Lad os se på de foregående eksempler igen, men denne gang videregiver vi den sætning, som vi ønsker at blive udsendt.
Python
def helloFunction (newPhrase):
print (newPhrase)
helloFunction ("Vores nye sætning")
Nu, mellem parenteserne, erklærer vores funktion, at den har brug for en variabel for at køre. Vi har navngivet variablen newPhrase og kan nu bruge det til vores funktion. Når vi kalder funktionen, skal vi videregive de ønskede oplysninger ved at placere dem mellem parenteserne. De samme ændringer blev foretaget i JavaScript.
JavaScript
funktion helloFunction (newPhrase) {
alarm (newPhrase);
}
helloFunction ("Vores nye sætning");
C ++
#omfatte
ved hjælp af namespace std;
ugyldigt helloFunction (streng newPhrase) {
cout << newPhrase;
}
int main () {
helloFunction ("Vores nye sætning");
returnere 0;
}
Vores C ++ - funktion krævede lidt mere information. Vi ved, at din funktion ønsker strengdata, men det er ikke godt nok til C ++. Når du opretter din funktion, skal du angive, hvilken type data din funktion kræver. Hvis du ikke sender den korrekte datatype, opretter funktionen en fejl.
Dette kan virke lidt irriterende, men strenge sprog kan ofte spare dig for hovedpine. Hvis du skriver en funktion i JavaScript, der kræver et heltal, men nummeret sendes som en streng, kan det oprette en fejl, der er meget vanskelig at spore.
Relaterede: 5 Funktionelle programmeringssprog, du bør kende
Funktioner, der returnerer en værdi
Den sidste funktionsevne, som vi vil dække, er at returnere data. Dette er især værdifuldt, når du vil ændre data, før du bruger dem. Selvom du kunne skrive den inline, hvis du vil bruge de samme beregninger mange gange, som at konvertere imperial til metrisk, kan det give mere mening at skrive det som en funktion. Vores eksempel vil være enklere. Vores funktion kræver to heltal og returnerer summen.
Python
def addingFunction (a, b):
returner a + b
print (tilføjefunktion (2, 4))
I dette eksempel kræver vores funktion to variabler i stedet for en. Vi angiver det ved at adskille vores variabelnavne med et komma. Nøgleordet Vend tilbage fortæller funktionen at returnere følgende data, i dette tilfælde 2 + 4 eller 6. Vi kalder funktionen inde i Print() fungere.
Når vores program var kommet til den linje, ville det have sat pause, kørt vores funktion og derefter fortsat som om tilføjelsesfunktion (2, 4) var faktisk bare den returnerede værdi 6.
JavaScript
JavaScript-koden svarer meget til Python-koden. Den primære forskel er, at funktionen kaldes i en alarm.
funktion tilføjerFunktion (a, b) {
returner a + b;
}
alarm (tilføjelsesfunktion (2, 4));
C ++
#omfatte
ved hjælp af namespace std;
int addingFunction (int a, int b) {
returner a + b;
}
int main () {
cout << addingFunction (2, 4);
returnere 0;
}
C ++ - koden kører på samme måde, men som normalt kræver det lidt mere information. Først skal vi sige, hvilken type data vores funktion returnerer. Du vil se det ugyldig er blevet ændret til int. Dette betyder, at i stedet for at returnere ingen data, returnerer vores funktion et heltal. Derudover svarer koden til den kode, vi allerede har udforsket.
Administrer dine funktioner
En sjov ting ved funktioner er, at funktioner kan kalde andre funktioner. De kan endda kalde sig selv! Men med stor magt kommer stort ansvar. Bliv ikke skør ved at oprette kode med funktioner, der kalder andre funktioner, der kalder endnu flere funktioner.
Som nævnt, stopper programmet hver gang en funktion kaldes, mens den kører funktionen. Dette betyder, at programmet holdes i aktiv hukommelse. Hvis du ringer til flere funktioner uden at udføre dem, bruger du mere aktiv hukommelse. Hvis du ikke er forsigtig, kan dit program komme ud af hånden.
Globale variabler kan virke enkle, men de er ofte årsagen til så mange bugs. Sådan strømline din kode med indkapsling.
- Programmering
- Programmering
- Funktionel programmering
J. Seaton er en Science Writer, der har specialiseret sig i at nedbryde komplekse emner. Hun har en ph.d. fra University of Saskatchewan; hendes forskning fokuserede på at bruge spilbaseret læring til at øge elevernes engagement online. Når hun ikke arbejder, finder du hende med hendes læsning, spille videospil eller havearbejde.
Abonner på vores nyhedsbrev
Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!
Et trin mere !!!
Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.