if(country1 != null)
{
country1 = "Turkey";
}
else
{
country1 = "ABD";
}
Run Code Online (Sandbox Code Playgroud)
Doc*_*Doc 11
三元运算符使用三个操作数:
一个条件,后跟 a ?,后跟一个用于评估条件是否为“真”的表达式,后跟一个 a :,后跟一个用于评估条件是否为 的表达式falsey。
因此,就您而言,您想要做的是:
country1 = country1 != null ? 'Turkey' : 'ABD';
Run Code Online (Sandbox Code Playgroud)
编辑:
您似乎对运算符有点困惑??。??称为空合并运算符
x = x ?? 'foo';
Run Code Online (Sandbox Code Playgroud)
相当于
if( x == null )
x = 'foo';
else
x = *whatever the value previously was*;
Run Code Online (Sandbox Code Playgroud)
因此,如果我们在检查之前x设置为,它不会更改为 ,因为不等于。另外,请注意,这里的语句是多余的。barfoobarnullelse
so??仅当变量先前为 null 时才会将其设置为某个值。
在您的代码中,您尝试分配两个值Turkey或 之一ABD,如果前一个值为 null,则不分配单个值。所以你会得到一个语法错误。
所以,总结一下。
if() {}
else {}
Run Code Online (Sandbox Code Playgroud)
可以使用三元运算符来缩短? :。
和
if(){}
Run Code Online (Sandbox Code Playgroud)
可以使用??运算符来缩短,因为这里的 else 语句只是多余的。
因此,您的代码的等效项将不会使用??运算符。
| 归档时间: |
|
| 查看次数: |
17170 次 |
| 最近记录: |