perl表达式中有任何副作用$a = $a;
将有人请解释下一个:
在“Programming Perl”一书中,postfix autoincrement operator被描述为
所以,据我所知,$a从未在虚空环境中使用过,因为有人说过
但在下一个示例中,变量的值永远不会改变: 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). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |