
Știi care este diferența dintre parametru și argument? Mă refer aici la parametri unei funcții, respectiv argumentele unei funcții care se pun la apelare.
Hai mai întâi să definim ce este o funcție.
Ce este o funcție? O funcție este un bloc de instrucțiuni (bloc de cod), care poate fi apelată oricând și oriunde în interiorul programului. Îți recomand să dai o „geană” pe articolul „Ce este o funcție într-un limbaj de programare?”
O funcție poate avea sau nu parametri și argumente. Dacă nu are niciun parametru, atunci nu trebuie să aibă niciun argument. Dacă are un parametru, atunci trebuie să aibă un argument. Ține minte: câți parametri are funcția la definire, atâtea argumente trebuie să aibă și la apelare.
Imaginează-ți parametrul ca fiind numele variabilei, iar argumentul valoarea variabilei.
Îți dau și un exemplu în pseudocod:
functia calcSuma(parametru1, parametru2) { return parametru1 + parametru2; } // Apelez funcția calcSuma calcSuma(2,3);
Ce crezi că afișează programul anterior? Direct valoarea 5. De ce? Pentru că în cadrul funcției calcSuma am pus doi parametri (parametru1 și parametru2), iar în blocul de cod am pus instrucțiunea return care returnează suma dintre cei doi parametri. E simplu până aici?
După ce am terminat de lucrat cu funcția, o apelez folosind numele ei, iar în paranteze, în loc să pun variabilele parametru1 și parametru2, am pus direct valorile, adică argumentele pe care să le calculeze funcția.
În ce limbaje vrei să vezi exemple de definire a unei funcții cu parametri și argumente? Hai să mă rezum la patru limbaje clasice, și anume la:
Parametru vs. Argument în Java 🔗
În limbajele care au nevoie de compilare, precum Java, singura funcție care rulează fără a fi nevoie de apelare este main(), care de altfel este o metodă. În Java, orice funcție este de fapt o metodă a unei clase.
Orice altă funcție (sau metodă) în afară de main(), trebuie apelată pentru a fi utilizată. Și încă ceva: orice apelare trebuie făcută în metoda main().
Metoda main() reprezintă ușa prin care toate instrucțiunile sunt convertite în limbajul natural al calculatoarelor.
Uite aici un exemplu sugestiv:
public class ParametruArgumentJava { static void salutare(String nume) { // "nume" este parametru de tipul String System.out.println("Salutare, " + nume); } public static void main(String[] args) { // definesc metoda main() salutare("Robert"); // "Robert" este argumentul } } // Output: Salutare, Robert
Trecem la un limbaj mai interesant, unde poți inițializa parametrul? Hai la PHP!
Parametru vs. Argument în PHP 🔗
PHP este un limbaj care a făcut senzație în tinerețe, dar nu se lasă mai prejos, și are tot felul de chestii interesante, de tip „geeks”, pentru cei pasionați de programare.
O chestie faină în PHP este că poți să pui un parametru cu valoare implicită, adică să inițializezi variabila cu o valoare.
Hai să ne uităm la următorul exemplu:
function salutare($nume = "Robert") { echo "Salutare, $nume"; } salutare(); // Output: Salutare, Robert salutare("Emanuel"); // Output: Salutare, Emanuel
Ce am făcut în programul anterior? Am definit funcția salutare, unde am pus valoarea „Robert” la parametrul $nume. În interiorul funcției afișez un text în funcție de parametru. În afara funcției, am două apeluri: primul este fără niciun argument (se afișează valoarea dată de mine, adică Robert), iar la al doilea apel am pus un argument propriu.
PHP este destul de șmecher când vine vorba de parametri. De ce? Pentru că poți să declari câți parametri dorești. Acest concept poartă numele de parametru variadic și se pune simbolul … în fața parametrului. Se folosește îndeosebi la vectori.
Îți las doar exemplul de definire a unei funcții cu parametru variadic, fără nicio altă instrucțiune:
function paramVariadic(...$platforme) { // instrucțiuni }
Parametru vs. Argument în Python 🔗
Python e mare boier! Cum așa? Uite-așa. Pe lângă faptul că e tare ca Java și tare ca PHP (mă refer la ce știu ambele), în Python poți să apelezi funcția cu inițializarea parametrilor. Cum? Uite aici un exemplu:
def salutare(nume, varsta): print(f"Salut, {nume}! Ai {varsta} ani.") salutare("Robert", 25) # Output: Salut, Robert! Ai 25 ani. salutare(nume="Emanuel", varsta=30) # Output: Salut, Emanuel! Ai 30 ani.
În funcția salutare am pus doi parametri (nume și varsta), o linie de cod pentru afișare, iar după aceea am apelat funcția de două ori:
- salutare(„Robert”, 25) ⇒ am pus argumente, adică valori pentru parametrii respectivi (sau pentru variabilele respective)
- salutare(nume=”Emanuel”, varsta=30) ⇒ am inițializat fiecare parametru
Dacă n-ai învățat până acum limbajul Python, îți recomand să „sari” pe el!
Parametru vs. Argument în C 🔗
În limbajul C, lucrurile sunt un pic diferite. De ce? Principiul e același, dar avem două tipuri de parametri (ca denumire, nu ca utilitate):
- parametri formali (cum sunt parametri normali)
- parametri reali (cum sunt argumentele normale)
Uite aici un exemplu simplu în limbajul C:
void suma(int a, int b) { // a și b sunt parametri formali (parametri normali) printf("%d", a + b); } suma(1, 2); // 1 și 2 sunt parametri reali (argumente)
Cât de mult ți-au plăcut informațiile din acest articol?
Măcar acum știi clar că parametrul reprezintă variabila care se pune la definirea funcției, iar argumentul este valoarea care se pune la apelarea ei. Tare, nu?
Învață să fii profesionist!