Я пытался создать массив с несколькими элементами в Powershell. Одним из элементов должна быть строка с разделителями-запятыми, состоящая из элементов другого массива. Я попытался использовать этот код:
$list = @("a","b")
$result = @("1 " + $list -join ",", "2")
Я ожидал, что $result
будет массивом, состоящим из двух элементов: 1 a,b
и 2
. Но на самом деле это массив, состоящий из одного элемента 1 a b
.
. Эту проблему можно решить, добавив следующие паратезы:
$result = @(("1 " + $list -join ","), "2")
Просмотр Приоритет оператора Powershell, ,
, кажется, имеет приоритет над конкатенацией, поэтому эти две строки одинаково относятся к приоритету
$result = @("1 " + $list -join ",", "2")
$result = @("1 " + $list -join (",", "2"))
Так что, очевидно, оператор join
получает список строк в качестве аргумента. Согласно документации , join
принимает только один аргумент.
Мои вопросы:
Что join
делает с этим аргументом? И почему не выдает ошибку?