Аргумент передается в виде массива вместо заполнения отдельных переменных

Как обычно с кодированием, я понимаю, что это, вероятно, какая-то очевидная вещь, которую я просто не вижу, но у меня есть эта функция в powershell, которая принимает мой ввод как один массив вместо трех отдельных переменных, и я не могу понять, как исправить Это.

function Breakfast($itemOne, $itemTwo, $itemThree) {
    "For breakfast I want $itemOne, $itemTwo, and $itemThree"
}

Breakfast("eggs", "bacon", "milk")
Breakfast("milk", "cereal", "yogurt") 
Breakfast("yogurt", "granola", "fruit") 

Вывод, который я получаю, таков:

На завтрак я хочу яйца, бекон, молоко, и

На завтрак я хочу йогурт из молочных хлопьев, и

На завтрак я хочу йогуртовую мюсли с фруктами и

Заранее всем спасибо.


person Elizabeth Sims    schedule 07.05.2020    source источник
comment
Удалите скобки вокруг параметров, а также запятые. PowerShell использует пробелы для разделения параметров. Таким образом, 1_   -  person Theo    schedule 07.05.2020
comment
как указал Theo, вам нужно удалить скобки () вокруг значений параметров, которые вы передаете своей функции. ///// это демонстрирует одну из причин, по которой следует избегать использования упрощенного определения функции. [усмехается] это _подразумевает, что вы вызываете забаву через ››› Do-Stuff ($Var1, $Var2, $Var3) ‹‹‹, однако это отправит все ваши значения как один элемент — МАССИВ из 3 элементов — который пойдет в 1-й параметр, а не 3 элемента по одному на каждый параметр.   -  person Lee_Dailey    schedule 07.05.2020