6

我熟悉基本范围运算符

.. 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}

但是,我今天不小心使用了省略号 ( ...) 而不是范围运算符 ( ..),并注意到它出于某种原因从 N 枚举到 0:

PS C:\> 5...3
5
4
3
2
1
0

这是怎么回事?

4

1 回答 1

12

范围运算符仍在使用 - 事实证明,范围运算符的第二个输入(在本例中.3为 )被隐式转换为整数,因为范围运算符仅接受整数作为输入。

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

PS C:\> 5...6
5
4
3
2
1

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

PS C:\> 5..'3'
5
4
3
于 2012-08-30T21:46:05.247 回答