Powershell 的数组表示法在切片数组末尾时具有相当奇怪的行为,尽管已记录在案。官方文档中的这一部分很好地总结了这个奇异之处:
负数从数组末尾开始计数。例如,“-1”指的是数组的最后一个元素。要显示数组的最后三个元素,请键入:
$a[-3..-1]
但是,使用此表示法时要小心。
$a[0..-2]
此命令不引用数组的所有元素,除了最后一个元素。它指的是数组中的第一个、最后一个和倒数第二个元素。
以下代码证实了这种奇怪之处:
$a = 0,1,2,3
$a[1..-1]
这确实输出了这个奇怪的结果:
1
0
3
所以,问题是,用一个相对于数组开头的索引和另一个相对于数组结尾的索引进行切片的惯用方法 是什么?
请告诉我它比这个丑陋的烂摊子更好:
$a[1..($a.Count-1)]
编辑:
描述我正在寻找的另一种方法是:这个 python 表达式的惯用 Powershell 等效项:
a=1,2,3,4
a[1:-1]
当然,评估为(2,3)