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

perl表达式中有任何副作用$a = $a;

发布时间:2020-12-16 06:11:57 所属栏目:大数据 来源:网络整理
导读:将有人请解释下一个: 在“Programming Perl”一书中,postfix autoincrement operator被描述为 when placed after,they ( $a-- , $a++ ) increment or decrement the variable after returning the value. 所以,据我所知,$a从未在虚空环境中使用过,因为有人
将有人请解释下一个:

在“Programming Perl”一书中,postfix autoincrement operator被描述为

when placed after,they ($a--,$a++) increment or decrement the variable after returning the value.

所以,据我所知,$a从未在虚空环境中使用过,因为有人说过

they increment or decrement the variable

但在下一个示例中,变量的值永远不会改变:

my $a = 3;
$a = $a++;
say $a; #always outputs 3

所以我的假设是当将值赋给同一个变量时没有理由使用后自动递增,但是“编程Perl”中的定义应该被认为是错误的,因为运算符不会影响变量,而是变量中的值(至少在那个例子中).是对的吗?

提前欣赏.

解决方法

为什么,postfix自动增量和自动减量运算符实际上经常在void上下文中使用,因为它们影响变量 – 而不是值.

您的示例以其工作方式工作,因为变量在将旧值分配给它之前会后递增.换句话说,顺序

my $a = 3; $a = $a++;

…是… …

1) $old_value = $a;
2) $a = $a + 1;
3) $a = $old_value;

你应该在你的例子中用$b = $a替换$a = $a,然后打印$b和$a的值,你会清楚地看到差异:当$a增加时(因此,等于4),$b被赋予旧值$a(3).

(编辑:李大同)

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

    推荐文章
      热点阅读