我熟悉基本范围操作符:
.. 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)
归档时间: |
|
查看次数: |
164 次 |
最近记录: |