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

perl – 为什么reverse()不会改变我的数组?

发布时间:2020-12-15 21:54:14 所属栏目:大数据 来源:网络整理
导读:当我使用reverse()或sort()时,如果我想稍后使用它,我总是需要将return语句保存到变量中. @array=qw(Nick Susan Chet Dolly Bill);@array = reverse(@array); 为什么这与使用push(),pop()或shift()不同,您可以只调用该函数并更改数组? @array=qw(Nick Susan
当我使用reverse()或sort()时,如果我想稍后使用它,我总是需要将return语句保存到变量中.
@array=qw(Nick Susan Chet Dolly Bill);
@array = reverse(@array);

为什么这与使用push(),pop()或shift()不同,您可以只调用该函数并更改数组?

@array=qw(Nick Susan Chet Dolly Bill);
push(@array,"Bruce");

那么这些“功能”究竟有什么区别呢?

解决方法

perldoc perlfunc提供了一个主要线索:

Functions for real @ARRAYs

07001,
07002,
07003,
07004,
07005,
07006,
07007,
07008

Functions for list data

07009,
070010,
070011,
070012,
070013,
070014,
070015

并且perldoc perlfaq4解释了数组和列表之间的区别(强调我自己):

What is the difference between a list and an array?

(contributed by brian d foy)

A list is a fixed collection of scalars. An array is a variable that
holds a variable collection of scalars. An array can supply its
collection for list operations,so list operations also work on arrays

Array operations,which change the scalars,rearrange them,or
add or subtract some scalars,only work on arrays. These can’t work on a list,which is fixed. Array operations include
shift,unshift,push,pop,and splice.

简而言之,像reverse这样的列表操作是为列表设计的,无法修改.

他们可以接受数组的事实仅仅是列表支持的副作用.

(编辑:李大同)

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

    推荐文章
      热点阅读