Zvans pēc atsauces pret zvanu pēc vērtības: atšķirība un salīdzinājums

Programmā funkcijas var izsaukt divos veidos. Viena metode ir izsaukums pēc atsauces, bet nākamā metode ir izsaukums pēc vērtības. Šīs metodes var atšķirt atkarībā no parametriem nodoto vērtību veida.

Tajos izmantotos parametrus sauc par faktiskajiem parametriem. Tos izmanto daudzās programmēšanas valodās, piemēram, C, C++ un Java.

Atslēgas

  1. Izsaukums pēc atsauces nodod funkcijai mainīgā lieluma atmiņas adresi, savukārt izsaukums pēc vērtības nosūta mainīgā vērtības kopiju.
  2. Izmantojot izsaukumu ar atsauci, funkcijā veiktās izmaiņas tieši ietekmē sākotnējo mainīgo, savukārt izsaukums pēc vērtības atstāj sākotnējo mainīgo nemainīgu.
  3. Zvans pēc atsauces ir efektīvāks atmiņu nekā zvans pēc vērtības, taču tas var izraisīt neparedzētas blakusparādības, ja tas netiek rūpīgi pārvaldīts.

Zvans pēc atsauces pret zvanu pēc vērtības

Balto etiķi, ko izmanto tīrīšanai vai ēdiena gatavošanai, iegūst, fermentējot destilētu spirtu, iegūstot dzidru, asas garšas šķidrumu. Ābolu sidra etiķis tiek ražots, raudzējot ābolu cukurus, un tam ir maigāka, nedaudz saldena garša, ko izmanto salātu mērcēs un marinādēs.

Zvans pēc atsauces pret zvanu pēc vērtības

Izsaukšanas metode tiek izmantota, lai piekļūtu faktiskajam argumentam, kas ir funkcijas izsaukums. Tas nozīmē, ka izmaiņas parametrā tiek veiktas tikai pēc argumenta nodošanas.

Tas izmanto to pašu atmiņas sadalījumu, kas tiek izmantots faktiskajos parametros. Kad tas izsauc funkciju, tā vietā, lai kopētu mainīgos, izsaukumā pati adrese tiek izmantota ar atsaucēm.

Izsaukums pēc vērtības ir apakšprogramma, kas nodod apakšprogrammā izmantoto parametru faktiskos datus.

Izmantojot šo metodi, izsaucot funkciju, jūs nododat vērtību izsauktās funkcijas argumentu mainīgajam, lai izsauktā funkcija darbotos ar vērtību. Šīs izmaiņas netiks atspoguļotas izsauktajā funkcijā.

Salīdzināšanas tabula

Salīdzināšanas parametriZvanīt pēc uzziņasZvanīt pēc vērtības
mainīgsMainīgais ir nodots.Mainīgā kopija ir nodota.
Mainīga vērtībaVeiktās izmaiņas ietekmēs funkciju ārpusē.Veiktās izmaiņas neietekmēs funkciju ārpusē.
Sākotnējā vērtībaTas ir modificēts.Tas nav modificēts.
DrošībaFaktiskie argumenti nav droši.Faktiskie argumenti ir droši.
DefinīcijaNodošanai tas izmanto mainīgo.Nodošanai tā izmanto mainīgā kopiju.

Kas ir zvans pēc atsauces?

Tā ir metode, ko izmanto argumentu nodošanai funkcijai. Lai saglabātu mainīgo adreses, tiek izmantoti rādītāja mainīgie. Izmantojot šo metodi, faktiskie argumenti nav droši.

Arī lasīt:  Kā iegūt bezmaksas Robux, izmantojot Microsoft Rewards: īsa rokasgrāmata

Var tikt veiktas nejaušas izmaiņas. Ir svarīgi rūpīgi rīkoties ar argumentācijas darbībām. Tas palīdz izvairīties no kļūdas dēļ veiktajām izmaiņām.

Tas neradīs datu dublikātus, jo tajā ir tikai viena vērtība glābt atmiņas vieta. Ja persona nolasa kodu, viņi nevarēs atrast, vai šajā kodā esošās vērtības nav mainītas.

Izmantojot šo metodi, liela problēma ir mūža garantija. Tas kļūs par briesmām, ja strādāsit ar daudzpavedienu programmām un lambdas. Lai paziņotu zvanu ar atsauci, jums jānodod adrese.

Zvaniet pēc atsauces, kad runa ir par C programmēšanu. Tā tieši piekļūst datu vienumiem un veic tajos esošās funkcijas. Bet jums jābūt uzmanīgiem, jo ​​tajā ir iesaistītas norādes.

Ja zināt konkrēto datu vienuma statusu, izsauciet pēc atsauces metodes id perfect. Datu kopijas modificēšana neko noderīgu nedos

Izsaukumam pēc atsauces ir briesmas, kuru zvanam pēc vērtības nav. Varat netīšām atkārtoti piešķirt rādītāju rādītājam un pazaudēt to atmiņā.

Kas ir zvans pēc vērtības?

Izmantojot šo metodi, izmaiņas, kas veiktas parametra funkcijā, argumentu neietekmēs. Mijmaiņas programma darbojas kā labākais zvana pēc vērtības programmas piemērs.

Tajā ir paskaidrots, ka vērtībā netiek veiktas nekādas izmaiņas, pat ja tās tiek mainītas funkcijā. In Java, izsaukums pēc vērtības metodes nozīmē metodes izsaukšanu ar tās parametru kā vērtību.

Izmantojot šo metodi, parametri tiek saglabāti dažādās atmiņas vietās. Ja veicat izmaiņas atrašanās vietas iekšpusē, tas neietekmēs zvanītāja faktisko parametru.

Šī metode ir vislabākā, jo sākotnējā vērtība netiek mainīta. Bet jūs nevarat veikt nekādas izmaiņas faktiskajos mainīgajos. Izmantojot šo metodi, faktiskie argumenti būs droši, jo jūs nevarat veikt nejaušas izmaiņas. 

Arī lasīt:  XQuery vs XPath: atšķirība un salīdzinājums

Šī metode konservi datus, jo tie nemaina sākotnējo mainīgo. Šeit argumenti ir mainīgie. Mainīgā lieluma maiņa funkcijas pamattekstā nav tieša. Sarežģītas izteiksmes dažreiz var darboties kā argumenti.

Tas nav efektīvs atmiņai, jo vienam mainīgajam tiek izveidotas divas kopijas. Ja datu apjoms ir liels, zvana pēc vērtības metode tos neatrisinās. Tādā gadījumā programmētājiem vajadzētu izvēlēties zvanu, izmantojot atsauces metodi. 

Galvenās atšķirības starp zvanu pēc atsauces un zvanu pēc vērtības

  1. Sākotnējā vērtība izsaukumā tiek mainīta ar atsauci. No otras puses, izsaukumā pēc vērtības sākotnējā vērtība netiek mainīta.
  2. Programmēšanas valodas atbalsta izsaukumu pēc atsauces, taču tā nav noklusējuma funkcija. No otras puses, zvans pēc vērtības programmēšanas valodās darbojas pēc noklusējuma.
  3. Programmā Call by reference visas mainīgajā veiktās izmaiņas ietekmēs arī mainīgo ārpus funkcijas. No otras puses, izsaukumā pēc vērtības jebkuras izmaiņas, kas veiktas mainīgajā, neietekmēs mainīgo ārpus funkcijas.
  4. Izsaukums ar atsauci ļauj veikt izmaiņas mainīgā vērtībā. No otras puses, zvans pēc vērtības neļaus veikt izmaiņas.
  5. Izsaukumā ar atsauci tiks nodota vērtības adrese. Bet izsaukumā ar atsauci tiks nodota vērtības kopija. 
Atsauces
  1. https://www.jstor.org/stable/3857812
  2. ftp://prog.vub.ac.be/education/EMOOSE/ReuseSlides/merge-papers/Jackson&al1994-semanticDiff.pdf

Pēdējo reizi atjaunināts: 22. gada 2023. jūlijā

1. punkts
Viens pieprasījums?

Esmu pielicis tik daudz pūļu, rakstot šo emuāra ierakstu, lai sniegtu jums vērtību. Tas man ļoti noderēs, ja apsverat iespēju to kopīgot sociālajos medijos vai ar draugiem/ģimeni. DALĪŠANĀS IR ♥️

Leave a Comment

Vai vēlaties saglabāt šo rakstu vēlākam laikam? Noklikšķiniet uz sirds apakšējā labajā stūrī, lai saglabātu savu rakstu lodziņā!