我正在寻找一种语义或语言结构,它将简化我的一些if
语句。如果我有一个带有或的if语句,我在两个值之间选择',我希望稍后在代码中提供所选的变量。
我会用伪代码写这个:
if ( x or y ) {
function(z);
}
其中z
是x
或y
的值,无论哪个触发if
为真。否则我正在写
if ( x ) {
...
function(x);
}
if ( y ) {
...
function(y);
}
现在在这个例子中复制并不多,但在我的实际情况中,大约有6行代码在每个if
块中都是相同的重复。所以我写了类似的东西:
if ( x ) {
z = x;
}
if ( y ) {
z = y;
}
if ( z ) {
...
function(z);
}
但是,这似乎是如此迂回,我怀疑在某个地方有些大师提出了一个很好的语法来制作一行if
。是否有语言中的构造可以将触发值绑定到后续块中的变量?这种结构会被称为什么?
我正在使用的实际情况是PHP,所以我意识到PHP可能没有这个功能。
答案 0 :(得分:1)
对于这种情况。您可以使用?
运算符:
z = x ? x : y;
其中读取:z是(如果x不为假)x,否则为y。
答案 1 :(得分:1)
在Python(也是Ruby)中,表达式x or y
如果为真,则求值为x
,否则为y
。您可以将语句写为f(x or y)
或z = x or y
。
答案 2 :(得分:0)
实际上,像是
if ( $z = ( $x ? $x : $y ) ) {
function($z);
}
像在PHP中宣传的那样工作。谢谢,slebetman!