Kas yra programavimo funkcija?

Kas yra programavimo funkcija?

Ar dažnai pastebite, kad kopijuojate ir įklijuojate savo kodą, kad galėtumėte jį pakartotinai naudoti skirtinguose programos skyriuose?





Jei taip, galbūt norėsite 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, atliekantis užduotį. Jis gali būti iškviestas ir pakartotinai naudojamas kelis kartus. Galite perduoti informaciją funkcijai ir ji gali ją grąžinti. Daugelyje programavimo kalbų yra integruotų funkcijų, kurias galite pasiekti savo bibliotekoje, tačiau taip pat galite sukurti savo funkcijas.





Kai iškviečiate funkciją, programa pristabdo esamą programą ir vykdo funkciją. Funkcija bus skaitoma iš viršaus į apačią. Kai funkcija bus baigta, programa ir toliau veiks ten, kur buvo pristabdyta. Jei funkcija grąžino reikšmę, ta vertė bus naudojama ten, kur funkcija buvo iškviesta.

Kaip parašyti funkciją?

Yra daug skirtingų funkcijų rašymo būdų. Tiksli sintaksė priklausys nuo kalbos, kuria programuojate. Mes parodysime „Python“, „JavaScript“ ir „C ++“ pavyzdžius, kad parodytume įvairias programavimo sintakses.



Susiję: Kodėl programavimo kalbos negali egzistuoti be funkcijų

Tuščios funkcijos

Pirmasis funkcijų tipas, į kurį mes žiūrėsime, yra tuščia 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 sveiki . Šios funkcijos tikslas yra išvesti „Hello World“.





PATARIMAS: suteikite funkcijoms pavadinimus, paaiškinančius, ką jie daro. Kai programa taps sudėtingesnė, bus lengviau valdyti funkcijas ir skaityti kodą.

Python





def helloFunction():
print('Hello World')
helloFunction()

Raktinis žodis def yra naudojamas „Python“ funkcijai apibrėžti ir sukurti. Kitas yra funkcijos pavadinimas. Funkcijos instrukcijos seka kitoje eilutėje po dvitaškio. „Python“ yra svarbi balta erdvė, todėl būtinai įtraukite visą kodą, kurį norite vykdyti. Aukščiau pateiktame pavyzdyje funkcija vykdo vieną kodo eilutę.

Jūsų 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, vėliau ištirsime funkcijų parametrus.

„JavaScript“

pridėti paveikslui kraštinę
function helloFunction(){
alert('Hello World!');
}
helloFunction();

„JavaScript“ raktinis žodis funkcija naudojamas funkcijoms kurti. Toliau turime funkcijos pavadinimą. Bet koks kodas, patenkantis tarp garbanotų skliaustų, vykdomas, kai iškviečiama funkcija.

Tarpai „JavaScript“ nėra svarbūs, tačiau įprasta kodą įtraukti į įtrauką. Įtrauka palengvina kodo skaitymą, o tai labai svarbu, nes jūsų programos tampa sudėtingesnės.

Pastaba: panašiai spausdinti () ankstesniame pavyzdyje, budrus() taip pat yra funkcija.

C ++

#include
using namespace std;
void helloFunction(){
cout << 'Hello World!';
}
int main(){
helloFunction();
return 0;
}

Funkcijos C ++ sukurtos skirtingai. Pirmasis žodis vietoj raktinio žodžio funkcijai apibrėžti apibūdina duomenų, kuriuos funkcija grąžins, tipą. Šiuo atveju mūsų funkcija negrąžina jokių duomenų, todėl duomenys negalioja. Toliau turime funkcijos pavadinimą. Panašus į „JavaScript“, visas kodas tarp garbanotų skliaustų yra vykdomas, kai iškviečiama funkcija. Taip pat, kaip ir „JavaScript“, tarpas neturi įtakos funkcijai, tačiau yra gera praktika.

Ar pastebėjote kitą C ++ kodo funkciją? Taip, pagrindinis () yra funkcija. Kai vykdote C ++ programą, automatiškai iškviečiate pagrindinę funkciją. Kai pagrindinė funkcija sėkmingai baigta, ji išeina iš programos ir grąžina 0, kad signalizuotų, jog vykdant programą nebuvo klaidų.

Funkcijos, reikalaujančios vertybių

Tuščios funkcijos yra puikios, jei pastebite, kad vėl ir vėl rašote tą patį kodo bitą. Bet jie gali riboti. Jie yra statiški ir nesikeičia. Jie visada vykdo tas pačias instrukcijas. Vienas iš būdų, kaip padidinti jų naudingumą, yra perduoti funkcijai skirtingas vertes.

Jūs pastebėjote, kad skliausteliuose buvo nurodytos visos mūsų funkcijos. Skliausteliuose galime pareikšti, kad mūsų funkcijai vykdyti reikalingi duomenys. Tada funkcijai galime naudoti duomenis, perduotus mūsų funkcijai. Dar kartą pažvelkime į ankstesnius pavyzdžius, tačiau šį kartą perduokime frazę, kad norime būti išgirsti.

Python

def helloFunction(newPhrase):
print(newPhrase)
helloFunction('Our new phrase')

Dabar tarp skliaustų mūsų funkcija pareiškia, kad jai paleisti reikia kintamojo. Mes pavadinome kintamąjį newFrazė 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“

function helloFunction(newPhrase){
alert(newPhrase);
}
helloFunction('Our new phrase');

C ++

kaip padaryti gerą garo profilį
#include
using namespace std;
void helloFunction(string newPhrase){
cout << newPhrase;
}
int main(){
helloFunction('Our new Phrase');
return 0;
}

Mūsų C ++ funkcijai reikėjo šiek tiek daugiau informacijos. Mes žinome, kad jūsų funkcijai reikia eilutės duomenų, bet tai nepakanka C ++. Kurdami funkciją turite nurodyti, kokio tipo duomenų reikia jūsų funkcijai. Jei nesiunčiate tinkamo tipo duomenų, funkcija sukuria 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, tačiau skaičius siunčiamas kaip eilutė, tai gali sukelti klaidą, kurią labai sunku atsekti.

Susiję: 5 funkcinės programavimo kalbos, kurias turėtumėte žinoti

Funkcijos, kurios grąžina vertę

Paskutinė funkcijų galimybė, kurią aptarsime, yra duomenų grąžinimas. Tai ypač naudinga, kai norite pakeisti duomenis prieš juos naudodami. Nors galite parašyti tą eilutę, jei tuos pačius skaičiavimus naudosite daug kartų, pvz., „Imperial“ konvertuodami į metrikus, gali būti prasmingiau juos parašyti kaip funkciją. Mūsų pavyzdys bus paprastesnis. Mūsų funkcijai reikės dviejų sveikųjų skaičių ir grąžinama suma.

Python

def addingFunction(a, b):
return a + b
print(addingFunction(2, 4))

Šiame pavyzdyje mūsų funkcijai reikalingi du kintamieji, o ne vienas. Tai nurodome atskirdami kintamųjų pavadinimus kableliu. Raktinis žodis grįžti nurodo funkcijai grąžinti šiuos duomenis, šiuo atveju 2 + 4 arba 6. Funkciją vadiname viduje spausdinti () funkcija.

Kai mūsų programa pasiektų tą eilutę, ji būtų pristabdyta, vykdytų mūsų funkciją ir tęstųsi tarsi Funkcija (2, 4) iš tikrųjų buvo tik grąžinta vertė 6.

„JavaScript“

„JavaScript“ kodas yra labai panašus į „Python“ kodą. Pagrindinis skirtumas yra tas, kad funkcija iškviečiama įspėjime.

function addingFunction(a, b){
return a + b;
}
alert(addingFunction(2, 4));

C ++

#include
using namespace std;
int addingFunction(int a, int b){
return a + b;
}
int main(){
cout << addingFunction(2, 4) ;
return 0;
}

„C ++“ kodas veikia panašiai, tačiau, kaip įprasta, reikia šiek tiek daugiau informacijos. Pirma, 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ę jokių duomenų, mūsų funkcija grąžins sveiką skaičių. Be to, kodas yra panašus į kodą, kurį jau ištyrėme.

Tvarkykite savo funkcijas

Smagus funkcijų dalykas yra tas, kad funkcijos gali iškviesti kitas funkcijas. Jie netgi gali save vadinti! Tačiau su didele galia kyla didelė atsakomybė. Nesijaudinkite kurdami kodą funkcijomis, kurios iškviečia kitas funkcijas, kurios reikalauja dar daugiau funkcijų.

Kaip minėta, kiekvieną kartą iškvietus funkciją, programa pristabdo, kol ji vykdo funkciją. Tai reiškia, kad programa saugoma aktyvioje atmintyje. Jei paskambinsite dar kelioms funkcijoms jų nebaigę, naudosite aktyvesnę atmintį. Jei nesate atsargus, jūsų programa gali išeiti iš rankų.

Dalintis Dalintis „Tweet“ Paštu Kaip išlaikyti savo kodą švarų su objektų kapsuliavimu

Pasauliniai kintamieji gali atrodyti paprasti, tačiau jie dažnai sukelia tiek daug klaidų. Štai kaip supaprastinti kodą naudojant kapsulę.

Skaityti toliau
Susijusios temos
  • Programavimas
  • Programavimas
  • Funkcinis programavimas
Apie autorių Jennifer Seaton(Paskelbti 21 straipsniai)

J. Seatonas yra mokslo rašytojas, kurio specializacija yra sudėtingų temų skaidymas. Ji turi daktaro laipsnį Saskačevano universitete; jos tyrimas buvo sutelktas į žaidimu grindžiamo mokymosi panaudojimą, siekiant padidinti studentų dalyvavimą internete. Kai ji nedirba, ją rasite skaitydami, žaisdami vaizdo žaidimus ar dirbdami sodo darbus.

Daugiau iš Jennifer Seaton

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia