Почему имена параметров не могут начинаться с цифры?

Имена переменных могут быть числовыми-альфа, почему имена параметров не могут вести себя так же?

Переключить параметр, начинающийся с цифры

2 ответа

Решение

Поскольку first-parameter-char из command-parameter синтаксис, указанный в спецификации языка Powershell, не допускает этого.

2.3.4 Parameters
Syntax:

    command-parameter:
        dash   first-parameter-char   parameter-chars   colonopt

    first-parameter-char:
        A Unicode character of classes Lu, Ll, Lt, Lm, or Lo
        _   (The underscore character U+005F)
        ?

Вы можете найти список классов символов Unicode здесь.

Это определенно соглашение, а не чисто техническое ограничение.

function f($1) {
    $1
}


# Works positionally
f 1


# Works with splatting
$h = @{"1" = 2}
f @H


# Doesn't work by name
f -1 2

Стоит отметить, что спецификация языка была написана после самого языка, поэтому, возможно, есть несколько моментов, где она немного более конкретна, чем сама PowerShell.

Другие вопросы по тегам