Muutuja kui viit¶
Selleks, et paremini esile tuua viida toimimist, kasutame funktsiooni näidet. Siin on toodud üks programmikood, mis on inspireeritud Pythonist, aga tegelikult ei ole päris programmeerimiskeeles (pseudo-kood):
def add_one(number):
number = number + 1
def main():
value = 10
add_one(value)
print(value) # => 11
Eelneva koodinäite mõte on see, et kui funktsioonile add_one
antakse kaasa argument, siis see on viide mällu. Parameetri muutmisel muudetakse mälu sisu. Ehk siis value
(funktsioonis main
) ja number
(funktsioonis add_one
) viitavad samasse kohta mälus. Kui ühte muudetakse, muutub ka teine.
Sellist käitumist nimetatakse pass by reference. Seda on hea kasutada olukordades, kus andmete kopeerimine funktsiooni jaoks on ebaefektiivne. Näiteks kui meil on suur hulk andmeid, siis on kiirem anda kaasa viide juba mälus olevatele andmetele kui hakata koopiat tegema funktsiooni jaoks (vt järgmist peatükki).