我希望通过PowerShell的范围运算符更好地了解这里发生的事情。
$ myArray = 1..10 所以我们有$ myArray与1 2 3 4 ... 10
现在我想用-1来获取数组中的最后一个值并反向显示1 - 10,所以我做
$ myArray [( - 1).. 0]但这只产生10 1(仅这两个值,两者之间没有任何东西)。
但如果我做$ myArray [$ myArray [-1] .. 0],这将产生预期的所有值10 9 8 ... 1
有人能解释一下吗?我认为(-1)在[]内部会计算到最后一个元素或值10,它似乎正在做,然后范围会以10..0开始,但看起来范围被跳过并且只给出两个列出的值。这是一个只是为了学习PowerShell的练习,我没有具体的应用程序。顺便说一句,只有在没有()的情况下运行-1时,我得到相同的10 1。
谢谢, 杰森
答案 0 :(得分:2)
很简单
让我们看看-1..0
返回的内容:
-1
0
所以$ myArray [-1..0]相当于$ myArray [-1,0]因此结果。
但是10..0表达式返回整个范围。因此$myArray[$myArray[-1]..0]
表达式可以正常工作。