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.

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.

Java i zmienna liczba parametrów

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.

PODOBNE ARTYKUŁY