Erinevus kohaliku ja globaalse muutuja vahel

Peamised erinevused kohaliku muutuja ja globaalse muutuja vahel

  • Kohalik muutuja deklareeritakse funktsiooni sees, globaalne muutuja aga vรคljaspool funktsiooni.
  • Kohalikud muutujad luuakse siis, kui funktsioon on kรคivitanud tรคitmist, ja kaovad, kui funktsioon lรตpetab, teisest kรผljest luuakse globaalne muutuja tรคitmise alguses ja kaob programmi lรตppedes.
  • Kohalik muutuja ei paku andmete jagamist, globaalne muutuja aga andmete jagamist.
  • Kohalikud muutujad salvestatakse virna, globaalne muutuja aga kindlas kohas, mille mรครคrab kompilaator.
  • Parameetrite edastamine on vajalik kohalike muutujate jaoks, samas kui globaalse muutuja puhul pole see vajalik

Erinevus kohaliku ja globaalse muutuja vahel

Mis on muutuja?

Muutuja on salvestusalale mรครคratud nimi, mida programm saab manipuleerida. Muutuja tรผรผp mรครคrab muutuja mรคlu suuruse ja paigutuse.

See mรครคrab ka vรครคrtuste vahemiku, mida tuleb sellesse mรคllu salvestada, ja sellele muutujale rakendatavate toimingute olemuse.

Muutujate ulatus

Muutuja ulatus on lihtsalt muutuja eluiga. See on koodiplokk, mille all muutuja on rakendatav vรตi elus. Nรคiteks:

function foo(){
var x;
}

Te deklareerite muutuja "x" funktsiooni "foo" sees. Selle muutuja ulatus jรครคb selle funktsiooni sisse, seda ei saa kasutada vรคljaspool seda funktsiooni.
Muutujate programmeerimiskeele deklareerimiseks on kolm kohta:

  • Funktsiooni vรตi ploki sees: kohalikud muutujad
  • Vรคljaspool kรตiki funktsioone: globaalsed muutujad
  • Funktsiooni parameetrite mรครคratluses: Formaalsed parameetrid

Kohalik muutuja

Kohalik muutuja on mรครคratletud kui programmeerimisplokis vรตi alamprogrammides deklareeritud muutuja tรผรผp. Seda saab kasutada ainult alamprogrammi vรตi koodiploki sees, milles see on deklareeritud. Kohalik muutuja eksisteerib seni, kuni funktsiooni plokk on tรคitmisel. Pรคrast seda hรคvitatakse see automaatselt.

Kohaliku muutuja nรคide

public int add(){
int a =4;
int b=5;
return a+b;
}

Siin on "a" ja "b" kohalikud muutujad

Globaalne muutuja

A Globaalne muutuja programmis on muutuja, mis on mรครคratletud vรคljaspool alamprogrammi vรตi funktsiooni. Sellel on globaalne ulatus, mis tรคhendab, et see hoiab oma vรครคrtust kogu programmi eluea jooksul. Seega pรครคseb sellele kogu programmis juurde mis tahes programmis mรครคratletud funktsioon, vรคlja arvatud juhul, kui see on varjutatud.

Nรคide:

int a =4;
int b=5;
public int add(){
return a+b;
}

Siin on "a" ja "b" globaalsed muutujad.

Kohalik muutuja vs globaalsed muutujad

Siin on mรตned pรตhimรตttelised erinevused kohalike ja globaalsete muutujate vahel.

Parameeter kohalik Globaalne
Ulatus See deklareeritakse funktsiooni sees. See deklareeritakse vรคljaspool funktsiooni.
Vรครคrtus Kui seda ei lรคhtestata, salvestatakse prรผgivรครคrtus Kui see pole lรคhtestatud, salvestatakse vaikimisi null.
Eluaegne See luuakse funktsiooni kรคivitamisel ja kaob, kui funktsioonid lรตpetavad. See luuakse enne programmi globaalse tรคitmise algust ja kaob, kui programm lรตpeb.
Andmete jagamine Andmete jagamine ei ole vรตimalik, kuna kohaliku muutuja andmetele pรครคseb juurde ainult รผks funktsioon. Andmete jagamine on vรตimalik, kuna samale globaalsele muutujale pรครคseb juurde mitu funktsiooni.
parameetrid Parameetrite edastamine on vajalik kohalike muutujate jaoks, et pรครคseda juurde muu funktsiooni vรครคrtusele Parameetrite edastamine ei ole globaalse muutuja jaoks vajalik, kuna see on nรคhtav kogu programmis
Muutuja vรครคrtuse muutmine Kui kohaliku muutuja vรครคrtust รผhes funktsioonis muudetakse, ei ole muudatused teises funktsioonis nรคhtavad. Kui globaalse muutuja vรครคrtust รผhes funktsioonis muudetakse, on muudatused รผlejรครคnud programmis nรคhtavad.
Juurdepรครคs Kohalikele muutujatele pรครคseb juurde lausete abil funktsiooni sees, milles need deklareeritakse. Globaalsetele muutujatele pรครคsete juurde programmi mis tahes avaldusega.
Mรคlu salvestamine Kui pole tรคpsustatud, salvestatakse see virnale. Seda hoitakse kindlas kohas, mille mรครคrab kompilaator.

Globaalsete muutujate kasutamise eelised

  • Globaalsele muutujale pรครคsete juurde kรตigist programmi funktsioonidest vรตi moodulitest
  • Peate globaalse muutuja deklareerima ainult รผhekordselt vรคljaspool mooduleid.
  • Seda kasutatakse ideaalselt "konstantide" salvestamiseks, kuna see aitab sรคilitada konsistentsi.
  • Globaalne muutuja on kasulik, kui samadele andmetele pรครคseb juurde mitu funktsiooni.

Kohalike muutujate kasutamise eelised

  • Kohalike muutujate kasutamine tagab, et muutujate vรครคrtused jรครคvad รผlesande tรคitmise ajal puutumatuks
  • Kui mitu รผlesannet muudavad รผhte samaaegselt tรถรถtavat muutujat, vรตib tulemus olla ettearvamatu. Kuid selle kohalikuks muutujaks kuulutamine lahendab selle probleemi, kuna iga รผlesanne loob kohaliku muutuja oma eksemplari.
  • Saate anda kohalikele muutujatele erinevates funktsioonides sama nime, kuna neid tunneb รคra ainult funktsioon, milles need on deklareeritud.
  • Kohalikud muutujad kustutatakse niipea, kui mis tahes funktsioon on lรตppenud, ja vabastavad selle hรตivatud mรคluruumi.

Globaalsete muutujate kasutamise puudused

  • Liiga palju muutujaid on deklareeritud globaalseks, siis jรครคvad need mรคllu, kuni programmi tรคitmine on lรตpetatud. See vรตib pรตhjustada mรคlu otsas probleemi.
  • Andmeid saab muuta mis tahes funktsiooniga. Iga programmis kirjutatud lause vรตib muuta globaalse muutuja vรครคrtust. See vรตib anda ettearvamatuid tulemusi mitme รผlesandega keskkondades.
  • Kui globaalsete muutujate kasutamine koodi รผmberkujundamise tรตttu katkestatakse, peate muutma kรตiki mooduleid, kus neid kutsutakse.

Kohalike muutujate kasutamise puudused

  • Kohaliku muutuja silumisprotsess on รผsna keeruline.
  • รœhised andmed tuleb korduvalt lรคbida, kuna andmete jagamine ei ole moodulite vahel vรตimalik.
  • Neil on vรคga piiratud ulatus.

Mis on kasulikum?

Kohalik ja globaalne muutuja on vรตrdselt olulised programmi kirjutamisel mis tahes keeles. Suur hulk globaalseid muutujaid vรตib aga hรตivata tohutu mรคlu. Globaalsete muutujate soovimatuid muutusi on raske tuvastada. Seetรตttu on soovitatav vรคltida soovimatute globaalsete muutujate deklareerimist.

Vรตta see postitus kokku jรคrgmiselt: