Vai jūs bieži atrodaties, kopējot un ielīmējot kodu, lai to atkārtoti izmantotu dažādās programmas sadaļās?

Ja tā, ieteicams apsvērt iespēju izmantot funkcijas. Funkcijas ir ļoti spēcīga programmēšanas valodu iezīme. Tie var padarīt kodu efektīvāku, vieglāk lasāmu un elegantu.

Kas ir funkcija?

Funkcija ir koda bloks, kas veic uzdevumu. To var saukt un atkārtoti vairākas reizes. Jūs varat nodot informāciju funkcijai, un tā var nosūtīt informāciju atpakaļ. Daudzās programmēšanas valodās ir iebūvētas funkcijas, kurām varat piekļūt viņu bibliotēkā, bet jūs varat arī izveidot savas funkcijas.

Kas ir rekursija un kā jūs to izmantojat?

Uzziniet rekursijas pamatus, kas ir būtisks, taču nedaudz prātu saliekošs rīks programmētājiem.

Kad jūs izsaucat funkciju, programma pārtrauc pašreizējo programmu un izpilda funkciju. Funkcija tiks nolasīta no augšas uz leju. Kad funkcija ir pabeigta, programma turpina darboties tur, kur tā bija apturēta. Ja funkcija atgrieza vērtību, šī vērtība tiks izmantota vietā, kur funkcija tika izsaukta.

Kā jūs rakstāt funkciju?

Funkciju rakstīšanai ir daudz dažādu veidu. Precīza sintakse būs atkarīga no valodas, kurā jūs programmējat. Mēs parādīsim piemērus Python, JavaScript un C ++, lai parādītu programmēšanas sintakses diapazonu.

Saistīts: Kāpēc valodu programmēšana nevar pastāvēt bez funkcijām?

Void funkcijas

Pirmais funkcijas veids, kuru mēs aplūkosim, ir tukšuma funkcija. Tas vienkārši nozīmē, ka funkcija neatgriež vērtību. Void funkcijas tiek izmantotas, lai pabeigtu instrukciju kopumu. Šajos piemēros tiek saukta mūsu uzrakstītā funkcija sveiki Funkcija. Funkcijas mērķis ir izdot "Hello World".

PADOMS: piešķiriet funkciju nosaukumiem, kas izskaidro to darbību. Tas būs vieglāk pārvaldīt funkcijas un lasīt kodu, jo jūsu programma kļūst sarežģītāka.

Python

def helloFunction ():
drukāt ("Sveika pasaule")
helloFunction ()

Atslēgvārds def tiek izmantots Python, lai definētu un izveidotu funkciju. Tālāk ir funkcijas nosaukums. Funkcijā sniegtie norādījumi seko nākamajā rindā aiz resnās zarnas. Vietai Python ir nozīme, tāpēc noteikti ievilkiet visu kodu, kuru vēlaties, lai jūsu funkcija palaistu. Iepriekš minētajā piemērā funkcija palaiž vienu koda rindu.

Jūsu labās acis, iespējams, to pamanīja izdrukāt () ir arī funkcija, bet to sauc citādi nekā mūsu funkciju. Turieties pie šīs domas tūlīt, mēs vēlāk izpētīsim funkcijas parametrus.

JavaScript

funkcija helloFunction () {
trauksme ("Sveika pasaule!");
}
sveiki Funkcija ();

JavaScript - atslēgvārds funkciju tiek izmantots, lai izveidotu funkcijas. Tālāk mums ir funkcijas nosaukums. Jebkurš kods, kas atrodas starp cirtainajām iekavām, tiek palaists, izsaucot funkciju.

Vieta JavaScript nav svarīga, taču funkcijā ir ierasts ievilkt kodu. Ievilkums atvieglo koda lasīšanu, kas ir ļoti svarīgi, jo jūsu programmas kļūst sarežģītākas.

Piezīme: Līdzīgi izdrukāt () iepriekšējā piemērā brīdinājums () ir arī funkcija.

C ++

# iekļaut 
izmantojot nosaukumvietu std;
void helloFunction () {
cout << "Sveika pasaule!";
}
int main () {
sveiki Funkcija ();
atgriešanās 0;
}

Funkcijas C ++ tiek veidotas atšķirīgi. Funkcijas definēšanas atslēgvārda vietā pirmais vārds apraksta datu veidu, ko funkcija atgriezīs. Šajā gadījumā mūsu funkcija neatgriež datus, tāpēc dati ir nederīgi. Tālāk mums ir funkcijas nosaukums. Līdzīgi kā JavaScript, viss kods starp cirtainajām iekavām tiek palaists, kad tiek izsaukta funkcija. Arī līdzīgi kā JavaScript, atstarpe neietekmē funkciju, bet ir laba prakse.

Vai C ++ kodā pamanījāt citu funkciju? Jā, galvenais () ir funkcija. Izpildot C ++ programmu, jūs automātiski izsaucat galveno funkciju. Kad galvenā funkcija ir veiksmīgi pabeigta, tā atgriež 0, izejot no programmas, lai norādītu, ka programmas palaišanā nav kļūdu.

Funkcijas, kurām nepieciešamas vērtības

Void funkcijas ir lieliskas, ja atklājat, ka atkal un atkal rakstāt vienu un to pašu koda bitu. Bet tie var būt ierobežojoši. Tie ir statiski un nemainās. Viņi vienmēr izpilda tās pašas instrukcijas. Viens no veidiem, kā mēs varam palielināt to lietderību, ir dažādu vērtību nodošana funkcijai.

Jūs būsiet pamanījis, ka iekavās ir norādīts visu mūsu funkciju nosaukums. Iekavās mēs varam paziņot, ka dati ir nepieciešami, lai palaistu mūsu funkciju. Tad funkcijā mēs varam izmantot mūsu funkcijai nodotos datus. Vēlreiz apskatīsim iepriekšējos piemērus, bet šoreiz nododiet frāzi, ka mēs vēlamies, lai mēs tiktu izdoti.

Python

def helloFunction (newPhrase):
drukāt (newPhrase)
helloFunction ("Mūsu jaunā frāze")

Tagad starp iekavām mūsu funkcija paziņo, ka tās darbībai nepieciešams mainīgais. Mēs esam nosaukuši mainīgo newPhrase un tagad to var izmantot mūsu funkcijās. Izsaucot funkciju, mums jānodod pieprasītā informācija, ievietojot to starp iekavām. Tādas pašas izmaiņas tika veiktas arī JavaScript.

JavaScript

funkcija helloFunction (newPhrase) {
brīdinājums (newPhrase);
}
helloFunction ("Mūsu jaunā frāze");

C ++

# iekļaut 
izmantojot nosaukumvietu std;
void helloFunction (string newPhrase) {
cout << newPhrase;
}
int main () {
helloFunction ("Mūsu jaunā frāze");
atgriešanās 0;
}

Mūsu C ++ funkcijai bija nepieciešama nedaudz vairāk informācijas. Mēs zinām, ka jūsu funkcija vēlas virknes datus, taču tas nav pietiekami labs C ++. Veidojot funkciju, jums jānorāda, kāda veida dati nepieciešama jūsu funkcijai. Ja nesūtāt pareiza veida datus, funkcija radīs kļūdu.

Tas varētu šķist nedaudz kaitinoši, taču stingras valodas bieži var ietaupīt galvassāpes. Ja JavaScript rakstāt funkciju, kurai nepieciešams vesels skaitlis, bet numurs tiek nosūtīts kā virkne, tā var izveidot kļūdu, kuru ir ļoti grūti izsekot.

Saistīts: 5 funkcionālās programmēšanas valodas, kas jums jāzina

Funkcijas, kas atgriež vērtību

Pēdējā funkcijas spēja, kuru mēs aptversim, ir datu atgriešana. Tas ir īpaši vērtīgi, ja vēlaties mainīt datus pirms to izmantošanas. Lai gan jūs varētu uzrakstīt šo teksta rindiņu, ja daudzkārt izmantosiet tos pašus aprēķinus, piemēram, pārveidojot imperiālu par metriku, varētu būt lietderīgāk to rakstīt kā funkciju. Mūsu piemērs būs vienkāršāks. Mūsu funkcijai būs nepieciešami divi veseli skaitļi, un tā atgriezīs summu.

Python

def pievienošanaFunkcija (a, b):
atgriezt a + b
drukāt (pievienojotFunction (2, 4))

Šajā piemērā mūsu funkcijai nepieciešami divi mainīgie, nevis viens. Mēs to norādām, atdalot mainīgo nosaukumus ar komatu. Atslēgvārds atgriešanās liek funkcijai atgriezt šādus datus, šajā gadījumā 2 + 4 vai 6. Mēs izsaucam funkciju iekšpusē izdrukāt () funkciju.

Kad mūsu programma nonāca pie šīs līnijas, tā būtu apstājusies, izpildījusi mūsu funkciju un pēc tam turpinājusi it kā pievienošanaFunkcija (2, 4) faktiski bija tikai atgrieztā vērtība 6.

JavaScript

JavaScript kods ir ļoti līdzīgs Python kodam. Galvenā atšķirība ir tā, ka funkcija tiek izsaukta brīdinājumā.

funkcija addFunction (a, b) {
atgriezt a + b;
}
brīdinājums (pievienojotFunction (2, 4));

C ++

# iekļaut 
izmantojot nosaukumvietu std;
int pievienojotFunction (int a, int b) {
atgriezt a + b;
}
int main () {
cout << pievienojotFunction (2, 4);
atgriešanās 0;
}

C ++ kods darbojas līdzīgi, taču, kā parasti, nepieciešams mazliet vairāk informācijas. Pirmkārt, mums jāsaka, kāda veida datus atgriezīs mūsu funkcija. Jūs to redzēsiet spēkā neesošs ir mainīts uz int. Tas nozīmē, ka tā vietā, lai atgrieztu datus, mūsu funkcija atgriezīs veselu skaitli. Papildus tam kods ir līdzīgs jau izpētītajam kodam.

Pārvaldiet savas funkcijas

Jautri par funkcijām ir tas, ka funkcijas var izsaukt citas funkcijas. Viņi pat var sevi saukt! Bet ar lielu spēku nāk liela atbildība. Nepazīstieties, veidojot kodu ar funkcijām, kas izsauc citas funkcijas, kas izsauc vēl citas funkcijas.

Kā jau minēts, katru reizi, kad tiek izsaukta funkcija, programma tiek apturēta, kamēr tā darbojas. Tas nozīmē, ka programma tiek turēta aktīvajā atmiņā. Ja izsaucat vēl vairākas funkcijas, tās neizpildot, tiek izmantota aktīvāka atmiņa. Ja neesat piesardzīgs, jūsu programma var izkļūt no rokas.

E-pasts
Kā uzturēt kodu tīru, izmantojot objektu iekapsulēšanu

Globālie mainīgie varētu šķist vienkārši, taču tie bieži ir tik daudz kļūdu cēlonis. Lūk, kā vienkāršot kodu, izmantojot iekapsulēšanu.

Saistītās tēmas
  • Programmēšana
  • Programmēšana
  • Funkcionālā programmēšana
Par autoru
Dženifera Sītone (Publicēti 20 raksti)

Dž. Sītons ir zinātņu rakstnieks, kas specializējas sarežģītu tēmu sadalīšanā. Viņai ir doktora grāds Saskačevanas universitātē; viņas pētījumi koncentrējās uz spēļu balstītas mācīšanās izmantošanu, lai palielinātu studentu iesaistīšanos tiešsaistē. Kad viņa nestrādā, jūs atradīsit viņu lasot, spēlējot videospēles vai dārzkopībā.

Vairāk no Dženiferas Sītones

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam par tehniskiem padomiem, atsauksmēm, bezmaksas e-grāmatām un ekskluzīviem piedāvājumiem!

Vēl viens solis !!!

Lūdzu, apstipriniet savu e-pasta adresi e-pastā, kuru tikko nosūtījām.

.