Koska tietokoneista on tullut valtava osa elämäämme ja, kuten me kaikki tiedämme, ne ovat orjuuttaneet meidät, ei ole koskaan haittaa tietää muutamia sen yksityiskohtia, jotka yleensä auttavat meitä jokapäiväisessä elämässä. Syventyäksemme aiheeseen, joka on varsin tekninen ja syvällinen, meidän tulisi tarkastella muuttujien käsitettä ja eroa sen tyyppien - paikallisen ja globaalin - välillä.
Paikalliset vs globaalit muuttujat
Ero paikallisten ja yleisten muuttujien välillä on, että vaikka molemmat ovat kahden tyyppisiä muuttujia, ensimmäinen sattuu olemaan ilmoitettu funktion sisällä, kun taas jälkimmäinen ilmoitetaan sen ulkopuolella. Heidänkin elinaikansa vaihtelee. Kun edellisen elämä alkaa ja päättyy toiminnon suorittamiseen ja lopettamiseen, jälkimmäinen luodaan jo ennen ohjelman suorittamisen aloittamista. Se kuitenkin päättyy ohjelman päättymiseen.
Paikallinen muuttuja sattuu olemaan eräänlainen muuttuja. Se ilmoitetaan funktion sisällä, ja sen käyttöikä vaihtelee sen suorittamisesta sen lopettamiseen. Sen soveltamisala on myös rajoitettu sen tehtävän sisällä, jossa se on ilmoitettu. Jos sitä ei ole alustettu, se voi tallentaa "roskaarvon".
Toisaalta globaali muuttuja on myös eräänlainen muuttuja. Sille on ominaista se, että se on ilmoitettu funktion ulkopuolella. Se luodaan jo ennen kuin ohjelman suoritus alkaa; se kuitenkin päättyy ohjelman päättymiseen. Jos sitä ei ole alustettu, se tallentaa oletuksena nollan.
Vertailutaulukko paikallisten ja globaalien muuttujien välillä
Vertailuparametrit | Paikalliset muuttujat | Globaalit muuttujat |
Tietojen jakaminen | Tämä ei ole mahdollista tässä, koska tietoihin pääsee käsiksi vain yksi toiminto | Koska useat toiminnot voivat käyttää sitä, tämä ominaisuus on mahdollista |
Parametri | Parametrien välittäminen pääsyarvoon on äärimmäisen välttämätöntä | Parametrien välittäminen ei ole äärimmäisen välttämätöntä, koska arvoon pääsee käsiksi kauttaaltaan |
Muutokset | Jos arvoa muutetaan jossakin funktiossa, tällaiset muutokset eivät heijastu muihin funktioihin | Jos arvoa muutetaan jossakin funktiossa, tällaiset muutokset heijastavat koko ohjelmaa |
Esteettömyys | Tähän pääsee käsiksi funktion sisällä olevien lausekkeiden kautta | Tämä voidaan käyttää millä tahansa ohjelmassa olevalla lausekkeella |
Varastointi | Tämä tallennetaan määrittelemättömään paikkaan, ellei sitä ole määritetty | Tämä on tallennettu tiettyyn paikkaan |
Mitä ovat paikalliset muuttujat?
Tämä on eräänlainen muuttuja. Sen ominaisuudet ovat, että se on ilmoitettu tietyn funktion sisällä tai sisällä, ja sen arvoon pääsee käsiksi vain sellaisella käskyllä, joka on sisällytetty funktioon. Sen säilyvyys alkaa ohjelman suorittamisen alkaessa ja päättyy sen päättymiseen.
Toinen näkökohta on, että sen soveltamisala on myös rajoitettu sen tehtävän sisällä, jossa se on ilmoitettu. Jos sitä ei ole alustettu, se voi tallentaa "roskaarvon". Tätä varten tietojen jakaminen ei ole mahdollista, koska dataa voi käyttää vain yksi toiminto. Myös parametrien välittäminen pääsyarvoon on äärimmäisen välttämätöntä.
Toinen huomioitava tekijä on se, että jos arvoa muutetaan jossakin funktiossa, tällaiset muutokset eivät heijastu muihin funktioihin. Tähän pääsee käsiksi funktion sisällä olevien lausekkeiden kautta.
Siinä on muutamia etuja, kuten se takaa, että arvot pysyvät ennallaan myös tehtävän ollessa käynnissä. Kun jokainen tehtävä luo paikallisen muuttujan, tulokset ovat edelleen ennustettavissa. Ne poistetaan, kun jokin toiminto on suoritettu, jolloin vapautuu aiemmin varattu muistitila.
Mitä ovat globaalit muuttujat?
Tämäkin on eräänlainen muuttuja. Sille on ominaista se, että se on ilmoitettu funktion ulkopuolella. Se luodaan jo ennen kuin ohjelman suoritus alkaa; se kuitenkin päättyy ohjelman päättymiseen. Jos sitä ei ole alustettu, se tallentaa oletuksena nollan.
Tietojen jakaminen on mahdollista täällä, koska useat toiminnot voivat käyttää sitä. Tämä ominaisuus on mahdollista. Parametrien välittäminen ei ole äärimmäisen välttämätöntä, koska arvoon pääsee käsiksi kauttaaltaan funktioiden ulkopuolella ilmoitettujen muuttujien ansiosta. Jos arvoa muutetaan jossakin funktiossa, tällaiset muutokset heijastavat koko ohjelmaa. Tämä voidaan käyttää millä tahansa ohjelmassa olevalla lausekkeella.
Sillä on tiettyjä etuja, kuten se voidaan käyttää kaikista ohjelman toiminnoista. Se on keskeinen "vakioiden" tallentamisessa ja auttaa säilyttämään johdonmukaisuuden. Tämä on hyödyllisin, kun useat toiminnot käyttävät samoja tietoja. Sen haittapuolena on, että useita muuttujia jää muistiin ohjelman suorittamiseen asti, mikä puolestaan voi johtaa "Muisti loppu" -ongelmaan. Lisäksi joskus tulokset voivat olla epäluotettavia ja arvaamattomia, koska tietoja voidaan muuttaa tai muuttaa mikä tahansa toiminto.
Tärkeimmät erot paikallisten ja globaalien muuttujien välillä
Johtopäätös
Kun tietokonemaailman monimutkaisuudet lisääntyvät, siitä johtuva hämmennys tulee edelleen esiin. Siksi meidän tulee tutustua muuttujien käsitteeseen ja niiden tyyppeihin. Vaikka molemmat ovat kahden tyyppisiä muuttujia, edellinen sattuu olemaan ilmoitettu funktion sisällä, kun taas jälkimmäinen ilmoitetaan sen ulkopuolella. Heidänkin elinaikansa vaihtelee. Kun edellisen elämä alkaa ja päättyy toiminnon suorittamiseen ja lopettamiseen, jälkimmäinen luodaan jo ennen ohjelman suorittamisen aloittamista. Se kuitenkin päättyy ohjelman päättymiseen. Niillä on omat etunsa ja haittansa.
Edellisen muutamia etuja ovat, että se takaa, että arvot pysyvät ennallaan myös tehtävän ollessa käynnissä, ja kun jokainen tehtävä luo paikallisen muuttujan, tulokset ovat edelleen ennustettavissa. Lisäksi jälkimmäisen tiettyjä etuja ovat, että siihen pääsee käsiksi kaikista ohjelman toiminnoista.
Viitteet
- https://onlinelibrary.wiley.com/doi/full/10.1111/cogs.12831
- https://www.sciencedirect.com/science/article/pii/S1878029615001905