Raz kolejny zwrócimy się w stronę Javy w celu przedstawienia bardzo przyjemnego i efektywnego zapisu. Umożliwia on zapisanie "rozciągliwej" funkcji, która będzie w stanie pobierać tyle parametrów ile tylko sobie zażyczycie. Jeden, pięć, nawet dwadzieścia. Taka implementacja jest możliwa jeżeli się wie o jej istnieniu i o sposobie zapisu. Pojęciem tym jest "zmienna liczba parametrów" ("variadic function"), sposób zapisu opisano w środku.
Tweet |
ZMIENNA LICZBA PARAMETRÓW. SZCZEGÓŁY DODATKOWE
Tytułowa konstrukcja programistyczna pozwala na wstawienie dowolnej liczby argumentów wprowadzanych do podprogramu, czyli do funkcji. Jest to kolejna z tych rzeczy w programowaniu, która ma znacznie ułatwić pracę z wieloma wartościami naraz, ponieważ przeważnie wszystkie wprowadzane parametry są obsługiwane przez pętlę. Decyzja co potem można z tym zrobić należy do programisty.
Prostym przykładem jest sumowanie podanych liczb bez użycia pętli czy innego "kontenera". Zmienna liczba parametrów nada się doskonale do tego. Najczęstszą postacią jest postawienie w nawiasach obok nagłówka funkcji znaku wielokropka czy lepiej, trzech kropek ("..."). Większa część języków programowania wspiera możliwość zaimplementowania zmiennej liczby parametrów. Między innymi są to C, C++, C#, Python, JavaScript no i Java, którą męczę w tej chwili po raz kolejny. Po takim wyjaśnieniu zaprezentuję fragment kodu źródłowego jak możemy utworzyć funkcję ze zmienną liczbą argumentów w języku Java.
![]() |
Zmienna liczba parametrów w języku Java jest tworzona poprzez znak trzech kropek ustawionych obok pomiędzy typem danych, a nazwą "rozciągliwego" parametru.
ZMIENNA LICZBA PARAMETRÓW. PRZYKŁAD KODU ŹRÓDŁOWEGO
Poniżej prezentuję kod źródłowy w języku Java przedstawiający jak wygląda zastosowanie takiej konstrukcji:
package pl.jason.variadic_function;
public class Main
{
public static void main(String[] args)
{
sumNumbers(5, 7, 18);
sumNumbers(4);
sumNumbers(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
}
private static void sumNumbers(int ...numbers) // <- zmienna liczba parametrów
{
int total = 0;
for (int n = 0; n < numbers.length; ++n)
{
total += numbers[n];
}
System.out.println("Suma podanych liczb wynosi " + total);
}
}
Kod przedstawia funkcję "main" od której zaczyna się inicjacja programu, a poniżej jest definicja funkcji "sumNumbers", której zadaniem jest zsumowanie wszystkich podanych liczb całkowitych i wypisanie wyniku za pomocą funkcji "println". Zmienna liczba parametrów "kryje się" w nawiasie obok nazwy funkcji i pomiędzy słowami "int" i "numbers". W przypadku Javy można również wstawić tablicę i za jej pomocą przekazywać argumenty, natomiast nie wolno Wam mieszać tablic z pojedynczymi argumentami.
Na tym się kończy artykuł o bardzo podstawowym zaprezentowaniu jak wygląda bezkarnie wstawianie tylu parametrów do funkcji ile tylko chcecie.