Syntax 简化if()语句的语法或构造?
我正在寻找一种语义或语言结构,可以简化我的一些Syntax 简化if()语句的语法或构造?,syntax,scope,conditional-statements,control-flow,Syntax,Scope,Conditional Statements,Control Flow,我正在寻找一种语义或语言结构,可以简化我的一些if语句。如果我有一个带有or的If语句,其中我在两个值之间进行“选择”,那么我希望在代码的后面提供所选的变量 我将用伪代码编写: if ( x or y ) { function(z); } 其中,z是x或y的值,以触发的值为准。否则我就要写信了 if ( x ) { ... function(x); } if ( y ) { ... function(y); } 在这个例子中,重复并不多,但在我的
if
语句。如果我有一个带有or的If语句,其中我在两个值之间进行“选择”,那么我希望在代码的后面提供所选的变量
我将用伪代码编写:
if ( x or y ) {
function(z);
}
其中,z
是x
或y
的值,以触发的值为准。否则我就要写信了
if ( x ) {
...
function(x);
}
if ( y ) {
...
function(y);
}
在这个例子中,重复并不多,但在我的实际情况中,每个if
块中大约有6行代码是相同的重复。所以我写了这样的东西:
if ( x ) {
z = x;
}
if ( y ) {
z = y;
}
if ( z ) {
...
function(z);
}
但这似乎太迂回了,我怀疑在这条线上的某个地方,某位大师想出了一个很好的语法来制作一行if
。在一种语言中,是否存在一种构造,可以将触发值绑定到后续块中的变量中?这个结构叫什么
我工作的实际情况是在PHP中,所以我意识到PHP可能没有这种功能 对于这种情况。您可以使用?
运算符:
z = x ? x : y;
在Python(也是Ruby)中,表达式x或y
的计算结果为x
如果为真,否则y
。您可以将语句写成f(x或y)
,或者z=x或y
,实际上,类似于
if ( $z = ( $x ? $x : $y ) ) {
function($z);
}
与PHP中的广告一样工作。谢谢你,斯莱贝特曼 谢谢,杰里德夫,这正是我想要的。这个构造有名字吗?