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

Perl增量运算符

发布时间:2020-12-15 22:04:04 所属栏目:大数据 来源:网络整理
导读:$a = 10; $b = (++$a) + (++$a) + (++$a);print $b; 我得到答案37. 任何人都可以解释这个操作如何进行,结果如何得到37. 按照我的逻辑,应该是36: (++$a) + (++$a) + (++$a) 11 + 12 + 13 = 36 但是我得到了答案37 解决方法 Perl正在执行此操作 ( ( $a = $a +
$a = 10; 
$b = (++$a) + (++$a) + (++$a);
print $b;

我得到答案37.
任何人都可以解释这个操作如何进行,结果如何得到37.

按照我的逻辑,应该是36:

(++$a) + (++$a) + (++$a)
   11  +    12  +    13  = 36

但是我得到了答案37

解决方法

Perl正在执行此操作
( ( $a = $a + 1 ) + ( $a = $a + 1 ) ) + ( $a = $a + 1 )

你甚至将$a放在括号中,以便说在应用前必须首先发布它们,尽管它们的优先级还是比较高的

这主要围绕赋值运算符=返回其第一个操作数,这允许操作像这样的事实

(my $x = $y) =~ tr/A-Z/a-z/

如果赋值的结果是从$y复制到$x的值,那么tr ///将导致不能修改常量项或等价项,并且它对存储在任一变量中的内容都没有影响

这里是变量$a,执行如下

>执行第一个增量,返回$a
$a现在是11
>执行第二个增量,再次返回$a
$a现在是12
>执行第一个加法,其中增加了两个增量返回的值,这两个增量都是$a
$a是12,所以$a $a是24
>执行第三个增量,再次返回$a
$a现在是13
>执行第二个加法,它添加了第一个加法(24)和第三个增量($a)返回的内容,
$a是13,所以24 $a是37

请注意,这不应该依赖.除了说我们未定义之外,它没有记录在任何地方,并且行为可能随着Perl的任何版本而改变

(编辑:李大同)

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

    推荐文章
      热点阅读