Ar dažnai pastebite, kad kopijuojate ir įklijuojate kodą pakartotiniam naudojimui skirtinguose programos skyriuose?
Jei taip, galite apsvarstyti galimybę naudoti funkcijas. Funkcijos yra labai galinga programavimo kalbų savybė. Jie gali padaryti kodą efektyvesnį, lengviau skaitomą ir elegantišką.
Kas yra funkcija?
Funkcija yra kodo blokas, kuris atlieka užduotį. Tai galima vadinti ir pakartotinai naudojamas kelis kartus. Galite perduoti informaciją funkcijai ir ji gali išsiųsti informaciją atgal. Daugelyje programavimo kalbų yra įmontuotos funkcijos, kurias galite pasiekti jų bibliotekoje, tačiau galite sukurti ir savo funkcijas.
Sužinokite apie rekurso pagrindus - tai yra esminis, bet šiek tiek protą lenkiantis įrankis programuotojams.
Kai iškviečiate funkciją, programa pristabdo dabartinę programą ir įvykdys šią funkciją. Funkcija bus skaitoma iš viršaus į apačią. Kai funkcija bus baigta, programa toliau veiks ten, kur buvo pristabdyta. Jei funkcija grąžino vertę, ta reikšmė bus naudojama ten, kur funkcija buvo iškviesta.
Kaip rašote funkciją?
Yra daug įvairių būdų rašyti funkcijas. Tiksli sintaksė priklausys nuo kalbos, kuria programuojate. Mes parodysime „Python“, „JavaScript“ ir „C ++“ pavyzdžius, kad parodytume įvairią programavimo sintaksę.
Susijęs: Kodėl kalbų programavimas negali egzistuoti be funkcijų
Tuštybės funkcijos
Pirmasis funkcijos tipas, į kurį žiūrėsime, yra tuštumos funkcija. Tai tiesiog reiškia, kad funkcija negrąžina vertės. Tuščios funkcijos naudojamos instrukcijų rinkiniui užbaigti. Šiuose pavyzdžiuose vadinama mūsų parašyta funkcija helloFunction. Funkcijos tikslas yra išleisti „Hello World“.
PATARIMAS: suteikite funkcijoms pavadinimus, paaiškinančius, ką jie daro. Lengviau valdyti funkcijas ir skaityti kodą, kai jūsų programa tampa sudėtingesnė.
„Python“
def labas Funkcija ():
spausdinti („Labas pasaulis“)
helloFunction ()
Raktinis žodis def yra naudojamas „Python“, norint apibrėžti ir sukurti funkciją. Kitas yra funkcijos pavadinimas. Funkcijos instrukcijos pateikiamos kitoje eilutėje po dvitaškio. Tarpas „Python“ yra svarbus, todėl būtinai įtraukite visą kodą, kurį norite paleisti. Ankstesniame pavyzdyje funkcija paleidžia vieną kodo eilutę.
Tavo akys galėjo tai pastebėti spausdinti () taip pat yra funkcija, tačiau ji vadinama kitaip nei mūsų funkcija. Laikykitės šios minties dabar, mes vėliau išnagrinėsime funkcijų parametrus.
„JavaScript“
funkcija helloFunction () {
perspėjimas („Labas pasaulis!“);
}
labas Funkcija ();
„JavaScript“ - raktinis žodis funkcija naudojamas funkcijoms kurti. Toliau mes turime funkcijos pavadinimą. Bet koks kodas, kuris patenka tarp garbanotų skliaustų, vykdomas iškvietus funkciją.
Tuščia vieta nėra svarbi „JavaScript“, tačiau įprasta įtraukti funkciją į kodą. Įtampa palengvina kodo skaitymą, o tai yra labai svarbu, nes jūsų programos tampa sudėtingesnės.
Pastaba: panašiai kaip spausdinti () ankstesniame pavyzdyje budrus() taip pat yra funkcija.
C ++
# įtraukti
naudojant vardų sritį std;
void helloFunction () {
cout << "Sveikas pasauli!";
}
int main () {
labas Funkcija ();
grąžinti 0;
}
Funkcijos C ++ formuojamos skirtingai. Vietoj raktinio žodžio, apibrėžiančio funkciją, pirmasis žodis apibūdina duomenų, kuriuos funkcija grąžins, tipą. Šiuo atveju mūsų funkcija negrąžina jokių duomenų, todėl duomenys negalioja. Tada mes turime funkcijos pavadinimą. Panašiai kaip „JavaScript“, visas kodas tarp garbanotų skliaustų vykdomas, kai iškviečiama funkcija. Panašiai kaip ir „JavaScript“, tarpai neturi įtakos funkcijai, tačiau yra gera praktika.
Ar pastebėjote kitą funkciją C ++ kode? Taip, pagrindinis () yra funkcija. Vykdydami C ++ programą, jūs automatiškai iškviečiate pagrindinę funkciją. Sėkmingai atlikus pagrindinę funkciją, ji išeina iš programos 0, kad signalizuotų, jog vykdant programą nebuvo klaidų.
Funkcijos, kurioms reikia vertybių
„Void“ funkcijos yra puikios, jei pastebite, kad tą patį kodo bitą rašote vėl ir vėl. Bet jie gali būti ribojantys. Jie yra statiški ir nesikeičia. Jie visada vykdo tas pačias instrukcijas. Vienas iš būdų padidinti jų naudingumą yra skirtingų reikšmių perdavimas funkcijai.
Jūs pastebėjote, kad skliausteliuose buvo nurodyti visų mūsų funkcijų pavadinimai. Skliausteliuose galime deklaruoti, kad duomenys reikalingi mūsų funkcijai vykdyti. Tada funkcijoje galime naudoti duomenis, perduotus mūsų funkcijai. Dar kartą pažvelkime į ankstesnius pavyzdžius, tačiau šį kartą perduokite frazę, kad mes norime būti pateikti.
„Python“
def helloFunction (newPhrase):
spausdinti (newPhrase)
„helloFunction“ („Mūsų nauja frazė“)
Dabar tarp skliaustų mūsų funkcija skelbia, kad jai vykdyti reikia kintamojo. Pavadinome kintamąjį newPhrase ir dabar gali jį naudoti mūsų funkcijoje. Kai iškviečiame funkciją, turime perduoti prašomą informaciją, įdėdami ją tarp skliaustų. Tie patys pakeitimai buvo atlikti ir „JavaScript“.
„JavaScript“
funkcija helloFunction (newPhrase) {
perspėjimas (newPhrase);
}
helloFunction („Mūsų nauja frazė“);
C ++
# įtraukti
naudojant vardų sritį std;
void helloFunction (string newPhrase) {
cout << newPhrase;
}
int main () {
„helloFunction“ („Mūsų naujoji frazė“);
grąžinti 0;
}
Mūsų C ++ funkcija reikalavo šiek tiek daugiau informacijos. Mes žinome, kad jūsų funkcijai reikia eilutės duomenų, bet tai nėra pakankamai gerai C ++. Kurdami savo funkciją turite nurodyti, kokio tipo duomenų reikia jūsų funkcijai. Jei nesiųsite tinkamo tipo duomenų, funkcija sukurs klaidą.
Tai gali atrodyti šiek tiek erzina, tačiau griežtos kalbos dažnai gali sutaupyti galvos skausmo. Jei „JavaScript“ rašote funkciją, kuriai reikalingas sveikasis skaičius, bet skaičius siunčiamas kaip eilutė, tai gali sukurti klaidą, kurią labai sunku susekti.
Susijęs: 5 funkcinės programavimo kalbos, kurias turėtumėte žinoti
Funkcijos, kurios grąžina vertę
Galutinis funkcijos gebėjimas, kurį apimsime, yra duomenų grąžinimas. Tai ypač vertinga, kai norite pakeisti duomenis prieš juos naudodami. Nors galėtumėte parašyti tą eilutę, jei daug kartų naudosite tuos pačius skaičiavimus, pvz., Konvertuosite imperialą į metriką, gali būti prasmingiau jį parašyti kaip funkciją. Mūsų pavyzdys bus paprastesnis. Mūsų funkcijai reikės dviejų sveikųjų skaičių ir bus grąžinta suma.
„Python“
def pridėjimas Funkcija (a, b):
grąžinti a + b
spausdinti („AddFunction“ (2, 4))
Šiame pavyzdyje mūsų funkcijai reikia dviejų kintamųjų, o ne vieno. Mes tai nurodome atskirdami kintamuosius vardus kableliais. Raktinis žodis grįžti liepia funkcijai grąžinti šiuos duomenis, šiuo atveju 2 + 4 arba 6. Mes vadiname funkciją viduje spausdinti () funkcija.
Mūsų programai patekus į tą eilutę, ji būtų pristabdyta, vykdžiusi mūsų funkciją ir tęsusi tarsi toliau pridedantFunction (2, 4) iš tikrųjų buvo tik grąžinta 6 vertė.
„JavaScript“
„JavaScript“ kodas yra labai panašus į „Python“ kodą. Pagrindinis skirtumas yra tas, kad funkcija iškviečiama perspėjime.
funkcija addFunction (a, b) {
grąžinti a + b;
}
perspėjimas (pridedantFunction (2, 4));
C ++
# įtraukti
naudojant vardų sritį std;
int pridedantFunction (int a, int b) {
grąžinti a + b;
}
int main () {
cout << addedFunction (2, 4);
grąžinti 0;
}
C ++ kodas veikia panašiai, tačiau, kaip įprasta, reikia šiek tiek daugiau informacijos. Pirmiausia turime pasakyti, kokio tipo duomenis grąžins mūsų funkcija. Jūs tai pamatysite tuštuma buvo pakeistas į tarpt. Tai reiškia, kad užuot pateikę duomenis, mūsų funkcija grąžins sveiką skaičių. Be to, kodas yra panašus į jau ištirtą kodą.
Tvarkykite savo funkcijas
Įdomus funkcijų dalykas yra tas, kad funkcijos gali iškviesti kitas funkcijas. Jie netgi gali save vadinti! Tačiau su didele galia ateina didelė atsakomybė. Neišprotėkite kurdami kodą su funkcijomis, kurios iškviečia kitas funkcijas, kurios iškviečia dar daugiau funkcijų.
Kaip minėta, kiekvieną kartą, kai iškviečiama funkcija, programa sustabdoma, kol ji veikia. Tai reiškia, kad programa laikoma aktyvioje atmintyje. Jei paskambinsite dar kelioms funkcijoms jų neužbaigę, naudojate daugiau aktyviosios atminties. Jei nesate atsargūs, jūsų programa gali pasireikšti.
Visuotiniai kintamieji gali atrodyti paprasti, tačiau jie dažnai sukelia tiek daug klaidų. Štai kaip supaprastinti kodą naudojant kapsulę.
- Programavimas
- Programavimas
- Funkcinis programavimas
Dž. „Seaton“ yra mokslų rašytoja, kuri specializuojasi išskaidydama sudėtingas temas. Ji turi daktaro laipsnį Saskačevano universitete; jos tyrimai buvo sutelkti į žaidimu pagrįsto mokymosi panaudojimą siekiant padidinti studentų įsitraukimą į internetą. Kai ji nedirba, rasite ją skaitančią, žaidžiančią vaizdo žaidimus ar sodo darbus.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!
Dar vienas žingsnis…!
Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.