我想更好了解PowerShell的范围运算符在这里发生了什么。
$ myArray的= 1..10 所以我们有1 2 3 4 $ myArray的... 10
现在我想用-1得到数组中的最后一个值并显示1 - 10在反向,所以我
$ myArray的[( - 1).. 0]但是这仅产生10×1(仅这两个值,在之间没有任何东西)。
但是,如果我做$ myarray的[$ myArray的[-1] ... 0]这将产生所有的值预计10 9 8 ... 1
谁能给这个解释?我会认为(-1)为[]内将评估为它似乎是在做那么范围将踢在为10..0最后一个元素或值10,但它似乎是一个范围被跳过,只给两个列出的值。这仅仅是学习PowerShell的一个练习,我没有具体的应用。顺便说一句,我得到相同的10 1只有当我运行-1没有()。
感谢, 杰森
所以,通过这个思想,范围-1..0基本上是两个元素和-1被翻译成数组的最后一个元素所以这就是为什么我得到10 1?所以,给刚刚-1..0范围内第一个安打,看到-1,但在拼尽了全力$ myArray的[$ myArray的[-1] ... 0]变量被eval'ed第一则的范围内操作踢看到10?所以关键似乎是这种表达以及它如何得到评估?感谢您的解释。 Jason – user1190989 2012-02-05 19:47:06
请参阅get-help about_operator_precedence。数组索引操作在范围操作之前得到评估。 – mjolinor 2012-02-06 03:14:01