在“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).
总结以上是内存溢出为你收集整理的perl表达式中有任何副作用$a = $a;全部内容,希望文章能够帮你解决perl表达式中有任何副作用$a = $a;所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)