Atšķirība starp vietējo un globālo mainīgo

Kas ir mainīgais?

Mainīgais ir nosaukums, kas piešķirts uzglabāšanas vietai, ar kuru programma var manipulēt. Mainīgā tips nosaka mainīgā lielumu un izkārtojumu.

Tas arī nosaka vērtību diapazonu, kas jāsaglabā šajā atmiņā, un darbību raksturu, ko var piemērot šim mainīgajam.

Šajā apmācībā jūs uzzināsit

Mainīgo lielums

Mainīgā darbības joma ir vienkārši mainīgā kalpošanas laiks. Tas ir koda bloks, saskaņā ar kuru mainīgais ir piemērojams vai dzīvs. Piemēram: | _+_ |

Funkcijā “foo” jūs deklarējat mainīgo “x”. Šī mainīgā darbības joma paliek šīs funkcijas iekšpusē, un to nevar izmantot ārpus šīs funkcijas.

Ir trīs vietas, kur mainīgos varat deklarēt mainīgo programmēšanas valodu:

  • Funkcijas vai bloka iekšpusē: vietējie mainīgie
  • Ārpus visām funkcijām: Globālie mainīgie
  • Funkcijas parametru definīcijā: Formālie parametri

GALVENĀ ATŠĶIRĪBA

  • Vietējais mainīgais tiek deklarēts funkcijas iekšienē, turpretī globālais mainīgais tiek deklarēts ārpus funkcijas.
  • Vietējie mainīgie tiek izveidoti, kad funkcija ir sākusi izpildi, un tiek zaudēti, kad funkcija beidzas, no otras puses, globālais mainīgais tiek izveidots, kad sākas izpilde, un tiek zaudēts, kad programma beidzas.
  • Vietējais mainīgais nenodrošina datu koplietošanu, turpretī globālais mainīgais nodrošina datu koplietošanu.
  • Vietējie mainīgie tiek saglabāti kaudzē, turpretī globālais mainīgais tiek glabāts fiksētā vietā, par kuru lemj kompilators.
  • Parametru nodošana ir nepieciešama vietējiem mainīgajiem, turpretim globālajiem mainīgajiem tas nav nepieciešams

Vietējais mainīgais

Vietējais mainīgais ir definēts kā mainīgā veids, kas deklarēts programmēšanas blokā vai apakšprogrammās. To var izmantot tikai tajā apakšprogrammā vai koda blokā, kurā tas ir deklarēts. Vietējais mainīgais pastāv, līdz funkcijas bloks tiek izpildīts. Pēc tam tas tiks automātiski iznīcināts.

Vietējā mainīgā piemērs

function foo(){ var x; } 

Šeit a un b ir vietējie mainīgie

Globālais mainīgais

TO Globālais mainīgais programmā ir mainīgais, kas definēts ārpus apakšprogrammas vai funkcijas. Tam ir globāla darbības joma, kas nozīmē, ka tā saglabā vērtību visas programmas darbības laikā. Tādējādi tai var piekļūt visā programmā ar jebkuru programmā definētu funkciju, ja vien tā nav ēnota.

Piemērs: | _+_ |

Šeit “a” un “b” ir globāli mainīgie.

Vietējais mainīgais vs. Globālie mainīgie

Šeit ir dažas būtiskas atšķirības starp vietējiem un globālajiem mainīgajiem.

Parametrs Vietējais Globāli
Darbības jomaTas ir deklarēts funkcijas iekšpusē.Tas tiek deklarēts ārpus funkcijas.
VērtībaJa tas nav inicializēts, tiek saglabāta atkritumu vērtībaJa tas nav inicializēts, nulle tiek saglabāta pēc noklusējuma.
MūžsTas tiek izveidots, kad funkcija sāk izpildi, un tiek zaudēts, kad funkcijas tiek pārtrauktas.Tas tiek izveidots pirms programmas globālās izpildes sākuma un tiek zaudēts, kad programma tiek pārtraukta.
Datu koplietošanaDatu koplietošana nav iespējama, jo vietējā mainīgā datiem var piekļūt tikai ar vienu funkciju.Datu koplietošana ir iespējama, jo vairākas funkcijas var piekļūt vienam un tam pašam globālajam mainīgajam.
ParametriParametru nodošana ir nepieciešama, lai vietējie mainīgie varētu piekļūt citas funkcijas vērtībaiParametru nodošana nav nepieciešama globālajam mainīgajam, jo ​​tas ir redzams visā programmā
Mainīgās vērtības modifikācijaJa vienā funkcijā tiek mainīta vietējā mainīgā vērtība, izmaiņas nav redzamas citā funkcijā.Ja globālā mainīgā vērtība tiek mainīta vienā funkcijā, izmaiņas ir redzamas pārējā programmā.
PiekļūstVietējiem mainīgajiem var piekļūt, izmantojot paziņojumus funkcijā, kurā tie tiek deklarēti.Globālajiem mainīgajiem varat piekļūt, izmantojot jebkuru programmas paziņojumu.
Atmiņas krātuveTas tiek glabāts kaudzē, ja vien nav norādīts.Tas tiek glabāts noteiktā vietā, par kuru ir noteicis kompilators.

Globālo mainīgo izmantošanas priekšrocības

  • Globālajam mainīgajam var piekļūt no visām programmas funkcijām vai moduļiem
  • Globālais mainīgais ir jāpaziņo tikai vienu reizi ārpus moduļiem.
  • To ideāli izmanto “konstantu” glabāšanai, jo tas palīdz saglabāt konsekvenci.
  • Globālais mainīgais ir noderīgs, ja vieniem un tiem pašiem datiem piekļūst vairākas funkcijas.

Vietējo mainīgo izmantošanas priekšrocības

  • Vietējo mainīgo izmantošana nodrošina garantiju, ka uzdevuma izpildes laikā mainīgo vērtības paliks neskartas
  • Ja vairāki uzdevumi maina vienu mainīgo, kas darbojas vienlaicīgi, rezultāts var būt neparedzams. Bet, deklarējot to kā vietējo mainīgo, šī problēma tiek atrisināta, jo katrs uzdevums radīs savu lokālā mainīgā gadījumu.
  • Vietējiem mainīgajiem varat piešķirt tādu pašu nosaukumu dažādās funkcijās, jo tos atpazīst tikai funkcija, kurā tie ir deklarēti.
  • Vietējie mainīgie tiek dzēsti, tiklīdz kāda funkcija ir beigusies, un atbrīvo atmiņas vietu, ko tā aizņem.

Globālo mainīgo izmantošanas trūkumi

  • Pārāk daudz mainīgo tiek pasludināti par globāliem, tad tie paliek atmiņā, līdz tiek pabeigta programmas izpilde. Tas var izraisīt atmiņas trūkuma problēmu.
  • Datus var mainīt ar jebkuru funkciju. Jebkurš programmā ierakstīts paziņojums var mainīt globālā mainīgā vērtību. Tas var dot neparedzamus rezultātus daudzuzdevumu vidē.
  • Ja globālie mainīgie tiek pārtraukti koda pārveidošanas dēļ, jums būs jāmaina visi moduļi, kur tie tiek izsaukti.

Vietējo mainīgo izmantošanas trūkumi

  • Vietējā mainīgā atkļūdošanas process ir diezgan sarežģīts.
  • Kopīgi dati ir jānodod atkārtoti, jo datu apmaiņa starp moduļiem nav iespējama.
  • To darbības joma ir ļoti ierobežota.

Kas ir noderīgāk?

Vietējais un globālais mainīgais ir vienlīdz svarīgs, rakstot programmu jebkurā valodā. Tomēr liels skaits globālo mainīgo var aizņemt milzīgu atmiņu. Nevēlamas globālo mainīgo izmaiņas ir kļuvušas grūti identificējamas. Tāpēc ieteicams izvairīties no nevēlamu globālo mainīgo deklarēšanas.