加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 为什么我不能写@F [1 ..- 1]来获取元素1..last?

发布时间:2020-12-15 23:31:49 所属栏目:大数据 来源:网络整理
导读:在Perl中,数组索引-1表示最后一个元素: @F=(1,2,3);print $F[-1]; # result: 3 您也可以使用$#表示法,这里是$#F: @F=(1,3);print $F[$#F]; # result: 3 因此,当我想指定范围中的最后一个元素时,为什么-1和$#F不会给出相同的结果: print @F[1..$#F]; # 23p
在Perl中,数组索引-1表示最后一个元素:

@F=(1,2,3);
print $F[-1]; # result: 3

您也可以使用$#表示法,这里是$#F:

@F=(1,3);
print $F[$#F]; # result: 3

因此,当我想指定范围中的最后一个元素时,为什么-1和$#F不会给出相同的结果:

print @F[1..$#F]; # 23
print @F[1..-1];  # <empty>

数组@F [1 ..- 1]应该包含从元素1到最后一个元素的所有元素,不是吗?

解决方法

你的问题是@a [b..c]语法涉及两个不同的操作.首先评估b..c,返回一个列表,然后使用该列表评估@a [].范围运算符..不知道它被用于数组下标,所以就它而言,1和-1之间没有任何内容.它返回空列表,因此数组返回一个空切片.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读