省略号在PowerShell中的作用是什么?

Ian*_*ley 6 powershell

我熟悉基本范围操作符:

.. Range operator
Represents the sequential integers in an integer array, given an upper and lower boundary.
    1..10
    10..1
    foreach ($a in 1..$max) {write-host $a}
Run Code Online (Sandbox Code Playgroud)

但是,我今天意外地使用了省略号(...)而不是范围运算符(..),并注意到它由于某种原因从N下降到0:

PS C:\> 5...3
5
4
3
2
1
0
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

Ian*_*ley 12

范围运算符仍然被使用 - 事实证明,范围运算符的第二个输入(在这种情况下.3)被隐式转换为整数,因为范围运算符只接受整数作为输入.

这可以通过使用高于以下值的右侧值来验证.5:

PS C:\> 5...6
5
4
3
2
1
Run Code Online (Sandbox Code Playgroud)

当您使用明显非整数值作为范围运算符的右侧值时,这更容易看到:

PS C:\> 5..'3'
5
4
3
Run Code Online (Sandbox Code Playgroud)