3

变量名可以是数字字母,为什么参数名不能这样呢?

开关参数以数字开头

4

2 回答 2

6

因为Powershell 语言规范中指定first-parameter-char的语法不允许这样做。 command-parameter

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 字符类列表。

于 2013-09-25T13:58:17.667 回答
2

这绝对是惯例,而不是纯粹的技术限制。

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 本身就是。

于 2013-09-25T20:07:01.943 回答