(EG在Perl中)当条件A或条件B具有相同的结果时
if (A){
# Consequence X
}elsif (B){
# Consequence X
}
Run Code Online (Sandbox Code Playgroud)
我们可以写
if ( A || B ) {
# Consequence X
}
Run Code Online (Sandbox Code Playgroud)
我们如何具备以下条件:当A和C为真,或者B和C为真时,结果C如下.
这可写得很长:
if ( A && C){
# Consequence X
} elsif (B && C ){
# consequence X
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,有没有办法写这个更短?像这样的东西:
if ( (A && C) || (B && C) )
Run Code Online (Sandbox Code Playgroud)
语法上确定???
是.
if ( A && C){
# Consequence X
} elsif (B && C ){
# consequence X
}
Run Code Online (Sandbox Code Playgroud)
是相同的:
if ( (A && C) || (B && C) ){
#Consequence X
}
Run Code Online (Sandbox Code Playgroud)
这避免了C两次评估:
if ( (A || B) && C){
#Consequence X
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这更像是一个逻辑问题,这里的逻辑不仅限于Perl.