Perl 中的逗号在所有上下文中都是关联的吗?

问题描述 投票:0回答:1

假设

E
F
G
是不涉及优先级高于逗号的运算符的表达式。表达式
((E, F), G)
(E, (F, G))
在标量、列表和/或 void 上下文中是否等价?更准确地说,你能不能在不影响程序执行的情况下总是用
((E, F), G)
替换
(E, (F, G))
,反之亦然?

perl expression operator-precedence associativity
1个回答
1
投票

上下文不影响代码的解析方式。

逗号/列表运算符保证从左到右评估每个操作数(无论上下文如何)。

从那个和更多的信息中,我们可以证明

E, F, G
( E, F ), G
E, ( F, G )
是等价的。

© www.soinside.com 2019 - 2024. All rights reserved.