Неопределенное количество параметров

Последнее обновление: 02.03.2024

C#

JavaScript

Kotlin

Python

C#

Набор значений можно передавать через коллекцию(например, массив), но при вызове функции ей надо передать объект этой коллекции:

void Sum(int[]  numbers)
{
    int result = 0;
    foreach (var n in numbers)
    {
        result += n;
    }
    Console.WriteLine(result);
}
 
int[] nums = { 1, 2, 3, 4, 5};
Sum(nums);

Используя ключевое слово params в C# можно передавать неопределенное количество параметров (не только массив или другую коллекцию):

void Sum(params int[]  numbers)
{
    int result = 0;
    foreach (var n in numbers)
    {
        result += n;
    }
    Console.WriteLine(result);
}
 
int[] nums = { 1, 2, 3, 4, 5};
Sum(nums);
Sum(1, 2, 3, 4);
Sum(1, 2, 3);
Sum();

JavaScript

В JavaScript можно получить все параметры через массив arguments:

function sum(){
    let result = 0;
    for(const n of arguments)
        result += n;
    console.log(result);
}
sum(6, 4, 5)     // 15

Через параметр-массив:

function sum(numbers){
    let result = 0;
    for(const n of numbers)
        result += n;
    console.log(result);
}
sum([6, 4, 5])     // 15

Через параметр, который предваряется rest-оператором:

function sum(...numbers){
    let result = 0;
    for(const n of numbers)
        result += n;
    console.log(result);
}
sum(6, 4, 5)     // 15

Kotlin

fun sum(vararg numbers: Int) {
    var result = 0
    for(n in numbers) {
        result = result + n
    }
    println(result)
}
fun main() {
    val nums = intArrayOf(1, 2, 3, 4, 5)
    sum(*nums)          // 15
    sum(1, 2, 3, 4)     // 10
    sum(1, 2, 3)        // 6
    sum()               // 0
}

Python

def sum(*numbers):
    result = 0
    for n in numbers:
        result += n
    print(result)
    
nums = [ 1, 2, 3, 4, 5]
sum(*nums)          # 15
sum(1, 2, 3, 4)     # 10
sum(1, 2, 3)        # 6
sum()               # 0
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850