语法或构造以简化if()语句?

问题描述 投票:2回答:3

我正在寻找一种语义或语言结构,可以简化某些if语句。如果我有一个带或的if语句,则在两个值之间“选择”,我希望稍后在代码中提供所选的变量。

我将用伪代码编写:

if ( x or y ) {
    function(z);
}

zxy的值,无论哪个触发if为真。否则我在写

if ( x ) {
    ...
    function(x);
} 

if ( y ) { 
    ...
    function(y);
}

现在在该示例中复制不是很多,但是在我的实际情况下,每个if块中大约有6行代码是相同的复制。所以我写类似:

if ( x )  {
    z = x;
} 

if ( y ) {
   z = y;
}

if ( z ) {
    ...
    function(z);
}

但是那似乎太过round回,我怀疑这条线上的某个大师想出了一种不错的语法来制作单行if。在任何可以将触发值绑定到后续块中的变量的语言中,都有没有一种语言构造?这种结构称为什么?

我正在使用的实际情况是在PHP中,所以我意识到PHP可能没有此功能。

我正在寻找一种语义或语言构造,它将简化一些if语句。如果我有一个带或的if语句,则在其中两个值之间“选择”,我希望选择该值...

syntax scope conditional-statements control-flow
3个回答
1
投票

[在Python(也是Ruby)中,如果表达式为x or y,则为x;如果为true,则为y。您可以将语句写为f(x or y)z = x or y


1
投票

对于这种确切情况。您可以使用?运算符:


0
投票

实际上是类似的

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