IMP*_*TOR 1 perl conditional-operator
我无法破译这行代码.有人可以把它翻译成if/ else陈述吗?
我理解基本CONDITION ? VALUE_IF_TRUE : VALUE_IF_FALSE模式,但这条线似乎打破了这一点.
$type = $self->{1}{_flag} & 2 ?
$self->{2}{_flag} & 2 ? "A" : "B" :
$self->{2}{_flag} & 2 ? "B" : "C";
Run Code Online (Sandbox Code Playgroud)
我认为编写类似于运算符优先级远非显而易见的代码是不负责任的
使用if/ else和条件表达式的混合,它看起来更加清晰
if ( $self->{1}{_flag} & 2 ) {
$type = $self->{2}{_flag} & 2 ? "A" : "B";
}
else {
$type = $self->{2}{_flag} & 2 ? "B" : "C";
}
Run Code Online (Sandbox Code Playgroud)
尽管我还添加了一些括号以使其清晰可见,但只有几个换行符才能发挥作用。
$type = $self->{1}{_flag} & 2
? ( $self->{2}{_flag} & 2 ? "A" : "B" )
: ( $self->{2}{_flag} & 2 ? "B" : "C" );
Run Code Online (Sandbox Code Playgroud)