IkaR49
@IkaR49

Как задать в функции один обязательный аргумент и неограниченное количество необязательных?

Имеется функция
Function foo($a) {
    echo $a 
    echo $args 
}

Естественно, там не echo, но главное то, что отдельно обрабатывается $a, отдельно остальные аргументы, при чем их количество не ограничено и их может не быть, но $a должно быть обязательно. Однако в примере выше вызов функции без аргументов тоже работает.

Если пытаться сделать так:
Function foo {
    param(
        [Parameter (Mandatory = $true, Position = 0)] $a 
    )
    echo $a 
    echo $args
}


Здесь наоборот, вызов функции без аргументов невозможен, что и должно быть, но указать больше одного аргумента не получается, потому что интерпретатор жалуется на отсутствие подходящих позиционных параметров.

Как указать и обязательность одного параметра и необязательность и неограниченность других?
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
@azarij
В меру опытный никто
а так?

Function foo {
    param(
        [Parameter (Mandatory = $true, Position = 0)] $a,
        [Parameter (ValueFromRemainingArguments)] $other_params

    )
    
    "a:"
    $a
    "other params:"
    $other_params
    
}

foo "param1" "param2" "param3" "param4" "param5" "param6"


первый параметер лежит в $а, ВСЕ остальные в $other_params.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы