Löydätkö usein itsesi kopioimasta ja liittämääsi koodia uudelleenkäyttöä varten ohjelman eri osioissa?
Jos näin on, sinun kannattaa harkita toimintojen käyttöä. Toiminnot ovat erittäin tehokas ohjelmointikielien ominaisuus. Ne voivat tehdä koodista tehokkaamman, helpommin luettavan ja tyylikkään.
Mikä on toiminto?
Funktio on koodilohko, joka suorittaa tehtävän. Sitä voidaan kutsua ja käytetään uudelleen useita kertoja. Voit välittää tietoja toiminnolle ja se voi lähettää tietoja takaisin. Monilla ohjelmointikielillä on sisäänrakennettuja toimintoja, joita voit käyttää heidän kirjastossaan, mutta voit myös luoda omia toimintoja.
Opi rekursio, joka on olennainen mutta hieman mieltä taivuttava työkalu ohjelmoijille.
Kun soitat funktiolle, ohjelma keskeyttää nykyisen ohjelman ja suorittaa toiminnon. Toiminto luetaan ylhäältä alas. Kun toiminto on valmis, ohjelma jatkuu siellä, missä se oli keskeytetty. Jos funktio palautti arvon, kyseistä arvoa käytetään missä funktio kutsuttiin.
Kuinka kirjoitat toiminnon?
Toimintoja voidaan kirjoittaa monin eri tavoin. Tarkka syntaksi riippuu ohjelmoidusta kielestä. Näytämme esimerkkejä Pythonissa, JavaScriptissä ja C ++: ssa osoittaaksemme erilaisia ohjelmointisyntaksia.
Liittyvät: Miksi kielten ohjelmointi ei voi olla olemassa ilman toimintoja
Void-toiminnot
Ensimmäinen toimintotyyppi, jota tarkastelemme, on tyhjätoiminto. Tämä tarkoittaa yksinkertaisesti sitä, että funktio ei palauta arvoa. Mitätöintitoimintoja käytetään ohjeiden täyttämiseen. Näissä esimerkeissä kutsutaan kirjoittamaamme toimintoa helloFunction. Toiminnon tarkoituksena on tuottaa "Hello World".
VINKKI: anna funktioille nimet, jotka selittävät mitä he tekevät. Toimintojen hallinta ja koodin lukeminen on helpompaa, kun ohjelmastasi tulee monimutkaisempi.
Python
def helloFunction ():
tulosta ("Hello World")
helloFunction ()
Avainsana def käytetään Pythonissa funktion määrittelemiseen ja luomiseen. Seuraavaksi on funktion nimi. Funktion ohjeet seuraavat kaksoispisteen jälkeen seuraavalla rivillä. Välilyönnillä on merkitystä Pythonissa, joten muista sisentää kaikki koodi, jonka haluat toiminnon suorittavan. Yllä olevassa esimerkissä funktio suorittaa yhden koodirivin.
Terävät silmäsi ovat ehkä huomanneet sen Tulosta() on myös funktio, mutta sitä kutsutaan toisin kuin funktiomme. Pidä kiinni siitä ajatuksesta heti, tutkimme toimintojen parametrit myöhemmin.
JavaScript
funktio helloFunction () {
hälytys ("Hei maailma!");
}
helloFunction ();
JavaScriptissä avainsana toiminto käytetään luomaan toimintoja. Seuraavaksi meillä on funktion nimi. Kaikki kiharoiden sulkujen väliin jäävät koodit suoritetaan, kun toimintoa kutsutaan.
Välilyönti ei ole tärkeää JavaScriptissä, mutta on tavallista, että koodi kooditetaan funktiossa. Sisäänkäynti helpottaa koodin lukemista, mikä on erittäin tärkeää, kun ohjelmat monimutkaistuvat.
Huomaa: Paljon kuin Tulosta() aikaisemmassa esimerkissä hälytys () on myös toiminto.
C ++
#sisältää
käyttämällä nimiavaruuden vakiota;
void helloFunction () {
cout << "Hei maailma!";
}
int main () {
helloFunction ();
paluu 0;
}
Toiminnot luodaan eri tavalla C ++: ssa. Funktion määrittelemisen avainsanan sijaan ensimmäinen sana kuvaa datan tyypin, jonka funktio palauttaa. Tässä tapauksessa toimintomme ei palauta tietoja, joten tiedot ovat pätemättömiä. Seuraavaksi meillä on funktion nimi. Samoin kuin JavaScripti, kaikki kiharasulkeiden välinen koodi suoritetaan, kun toimintoa kutsutaan. Myös JavaScriptin tavoin välilyönti ei vaikuta toimintoon, mutta se on hyvä käytäntö.
Löysitkö toisen toiminnon C ++ -koodista? Joo, main () on funktio. Kun suoritat C ++ -ohjelman, soitat automaattisesti päätoimintoon. Kun päätoiminto on suoritettu onnistuneesti, se palauttaa 0, kun se poistuu ohjelmasta ilmoittamaan, ettei ohjelman suorittamisessa ole virheitä.
Arvoja vaativat toiminnot
Mitätöintitoiminnot ovat hienoja, jos huomaat, että kirjoitat samaa koodibittiä uudestaan ja uudestaan. Mutta ne voivat olla rajoittavia. Ne ovat staattisia eivätkä muutu. He suorittavat aina samat ohjeet. Yksi tapa lisätä niiden hyödyllisyyttä on siirtää eri arvot funktiolle.
Olet huomannut, että suluissa on käytetty kaikkien toimintojemme nimiä. Suluissa voimme ilmoittaa, että tietoja tarvitaan toiminnon suorittamiseen. Sitten voimme käyttää funktiollemme siirrettyjä tietoja toiminnossa. Katsotaanpa edelliset esimerkit uudelleen, mutta tällä kertaa välitämme lauseen, jonka haluamme toimitettavan.
Python
def helloFunction (newPhrase):
tulosta (newPhrase)
helloFunction ("Uusi lauseemme")
Nyt sulkujen välissä funktiomme ilmoittaa tarvitsevansa muuttujan toimiakseen. Olemme nimenneet muuttujan newPhrase ja voimme nyt käyttää sitä toiminnassamme. Kun kutsumme toimintoa, meidän on välitettävä pyydetyt tiedot sijoittamalla ne sulkujen väliin. Samat muutokset tehtiin JavaScriptissä.
JavaScript
funktio helloFunction (newPhrase) {
hälytys (newPhrase);
}
helloFunction ("Uusi lauseemme");
C ++
#sisältää
käyttämällä nimiavaruuden vakiota;
void helloFunction (merkkijono newPhrase) {
cout << uusiPhrase;
}
int main () {
helloFunction ("Uusi lauseemme");
paluu 0;
}
C ++ -toimintomme vaati hieman enemmän tietoa. Tiedämme, että funktiosi haluaa merkkijonotietoja, mutta se ei riitä C ++: lle. Kun luot toiminnon, sinun on määritettävä, minkä tyyppisiä tietoja toiminto vaatii. Jos et lähetä oikean tyyppisiä tietoja, toiminto luo virheen.
Tämä saattaa tuntua hieman ärsyttävältä, mutta tiukat kielet voivat usein säästää päänsärkyä. Jos kirjoitat funktion JavaScriptiin, joka vaatii kokonaisluvun, mutta numero lähetetään merkkijonona, se voi luoda virheen, jota on vaikea jäljittää.
Liittyvät: 5 toiminnallista ohjelmointikieltä, jotka sinun tulisi tietää
Toiminnot, jotka palauttavat arvon
Viimeinen toimintokyky, jonka käsittelemme, on tietojen palauttaminen. Tämä on erityisen arvokasta, kun haluat muuttaa tietoja ennen niiden käyttöä. Vaikka voit kirjoittaa tämän rivin, jos käytät samoja laskelmia monta kertaa, kuten muuntaa imperial metriksi, saattaa olla järkevämpää kirjoittaa se funktiona. Esimerkkimme on yksinkertaisempi. Funktiomme vaatii kaksi kokonaislukua ja palauttaa summan.
Python
def lisääminen Funktio (a, b):
palauta a + b
tulosta (lisäämällä toiminto (2, 4))
Tässä esimerkissä funktiomme vaatii kaksi muuttujaa yhden sijasta. Osoitamme sen erottamalla muuttujien nimet pilkulla. Avainsana palata käskee funktion palauttamaan seuraavat tiedot, tässä tapauksessa 2 + 4 tai 6. Kutsumme funktion sisällä Tulosta() toiminto.
Kun ohjelmamme on päässyt tälle riville, se olisi pysähtynyt, suorittanut toimintamme ja jatkanut kuin ikään kuin lisäysfunktio (2, 4) oli oikeastaan vain palautettu arvo 6.
JavaScript
JavaScript-koodi on hyvin samanlainen kuin Python-koodi. Ensisijainen ero on, että toiminto kutsutaan hälytyksessä.
function addFunction (a, b) {
palauta a + b;
}
hälytys (lisäämällä toiminto (2, 4));
C ++
#sisältää
käyttämällä nimiavaruuden vakiota;
int lisäystoiminto (int a, int b) {
palauta a + b;
}
int main () {
cout << lisäystoiminto (2, 4);
paluu 0;
}
C ++ -koodi toimii samalla tavalla, mutta kuten tavallista, vaatii hieman enemmän tietoa. Ensinnäkin meidän on sanottava, minkä tyyppisiä tietoja toimintomme palauttaa. Näet sen mitätön on vaihdettu int. Tämä tarkoittaa, että sen sijaan, että palauttaisimme tietoja, funktiomme palauttaa kokonaisluvun. Sen lisäksi koodi on samanlainen kuin jo tutkittu koodi.
Hallitse toimintojasi
Funktioiden hauska asia on, että toiminnot voivat kutsua muita toimintoja. He voivat jopa kutsua itseään! Mutta suurella voimalla on suuri vastuu. Älä mene hulluksi luomalla koodia toiminnoilla, jotka kutsuvat muita toimintoja, jotka kutsuvat vielä enemmän toimintoja.
Kuten mainittiin, joka kerta, kun toimintoa kutsutaan, ohjelma pysähtyy, kun se suorittaa toiminnon. Tämä tarkoittaa, että ohjelmaa pidetään aktiivisessa muistissa. Jos soitat vielä useita toimintoja suorittamatta niitä, käytät enemmän aktiivista muistia. Jos et ole varovainen, ohjelmasi voi mennä käsistä.
Globaalit muuttujat saattavat tuntua yksinkertaisilta, mutta usein ne aiheuttavat niin monia virheitä. Näin voit virtaviivaistaa koodisi kapseloinnilla.
- Ohjelmointi
- Ohjelmointi
- Toiminnallinen ohjelmointi

J. Seaton on Science Writer, joka on erikoistunut monimutkaisten aiheiden hajottamiseen. Hänellä on tohtori Saskatchewanin yliopistosta; hänen tutkimuksensa keskittyi pelipohjaisen oppimisen hyödyntämiseen opiskelijoiden sitoutumisen lisäämiseksi verkossa. Kun hän ei ole töissä, löydät hänet lukemisen, videopelien pelaamisen tai puutarhanhoidon kanssa.
Tilaa uutiskirjeemme
Liity uutiskirjeeseemme, jossa on teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja erikoistarjouksia!
Vielä yksi askel !!!
Vahvista sähköpostiosoitteesi juuri lähettämässäsi sähköpostiviestissä.