Perl 中“$array[x, y]”的含义是什么?
我知道 @array[0,2,6]
是一个具有多个值的数组。
我相信 $scalar=3 是具有单个标量值的单个变量。
然而,$array[3, 4]
是什么?它是具有两个值的标量变量吗?
I know @array[0,2,6]
is an array with multiple values.
And I was under the belief that $scalar=3
is a single variable with a single scalar value.
However, what is $array[3, 4]
? Is it a scalar variable with two values?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
@array[0,2,6]
(或更一般地@array[ EXPR ]
)是一个数组切片。 (参见perldata)索引表达式在列表上下文中计算,返回的列表被视为索引列表,由这些索引标识的元素由切片返回。$array[ EXPR ]
是一个数组元素。索引表达式在标量上下文中求值,返回的值被视为索引,并返回由该索引标识的元素。代码
3,4
在标量上下文中计算结果为4
— 请参阅 perlop — 所以$array[3,4]
与$array[4]
相同,除了 void context 警告。@array[0,2,6]
(or more generically@array[ EXPR ]
) is an array slice. (See perldata) The index expression is evaluated in list context, the returned list is taken to be a list of indexes, and the elements identified by those indexes are returned by the slice.$array[ EXPR ]
is an array element. The index expression is evaluated in scalar context, the returned value is taken to be an index, and the element identified by that index is returned.The code
3,4
evaluates to4
in scalar context — See the comma operator in perlop — so$array[3,4]
is the same as$array[4]
except for a void context warning.试试看:
1,2,3 是一个列表。在标量上下文中,它返回其最后一个成员。
Try it to see:
1,2,3 is a list. In scalar context, it returns its last member.