gpt4 book ai didi

perl - 在 Perl 中,使用 @a[$i] 访问数组元素与使用 $a[$i] 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 11:25:09 25 4
gpt4 key购买 nike

我遵循的基本语法教程没有说明这一点:

Is there any practical/philosophical/context-dependent/tricky difference between accessing an array using the former or latter subscript notation?



$ perl -le 'my @a = qw(io tu egli);打印 $a[1], @a[1]'

两种情况下的输出似乎相同。

最佳答案

$a[...]   # array element

返回由索引表达式标识的一个元素,并且
@a[...]   # array slice

返回由索引表达式标识的所有元素。

像这样,
  • 您应该使用 $a[EXPR]当您打算访问单个元素以将此信息传达给读者时。事实上,如果你不这样做,你会收到警告。
  • 您应该使用 @a[LIST]当您打算访问许多元素或可变数量的元素时。

  • 但这并不是故事的结局。您询问了实际和棘手(微妙?)的差异,但还没有提到:数组元素的索引表达式是在标量上下文中计算的,而数组切片的索引表达式是在列表上下文中计算的。
    sub f { return @_; }

    $a[ f(4,5,6) ] # Same as $a[3]
    @a[ f(4,5,6) ] # Same as $a[4],$a[5],$a[6]

    关于perl - 在 Perl 中,使用 @a[$i] 访问数组元素与使用 $a[$i] 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15726058/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com