我想更好了解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