Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何使用三元运算符(?:)或空合并运算符(??)写入if-else条件? if(country1!=null) { country1=“土耳其”; } 其他的 { country1=“ABD”; }_Flutter_Dart - Fatal编程技术网

Flutter 如何使用三元运算符(?:)或空合并运算符(??)写入if-else条件? if(country1!=null) { country1=“土耳其”; } 其他的 { country1=“ABD”; }

Flutter 如何使用三元运算符(?:)或空合并运算符(??)写入if-else条件? if(country1!=null) { country1=“土耳其”; } 其他的 { country1=“ABD”; },flutter,dart,Flutter,Dart,三元运算符使用三个操作数: 一种条件,后跟一个?, 后跟用于计算条件是否为“truthy”的表达式,后跟一个:, 后跟一个表达式,用于计算条件是否为假 所以在你的情况下,你想做的是: country1 = country1 != null ? 'Turkey' : 'ABD'; 编辑: 您似乎对??运算符有点困惑??称为空合并运算符 x = x ?? 'foo'; 相当于 if( x == null ) x = 'foo'; else x = *whatever the va

三元运算符使用三个操作数:

一种条件,后跟一个
, 后跟用于计算条件是否为“truthy”的表达式,后跟一个
, 后跟一个表达式,用于计算条件是否为假

所以在你的情况下,你想做的是:

country1 = country1 != null ? 'Turkey' : 'ABD';
编辑:

您似乎对
??
运算符有点困惑
??
称为空合并运算符

x = x ?? 'foo';
相当于

if( x == null )
    x = 'foo';
else
    x = *whatever the value previously was*;
因此,如果我们在检查之前将
x
设置为
bar
,它不会更改为
foo
,因为
bar
不等于
null
。另外,请注意这里的
else
语句是多余的

因此,
??
仅当变量先前为空时才会将其设置为某个值

在代码中,您试图分配两个值中的一个
Turkey
ABD
,如果前一个值为null,则不分配单个值。所以你得到了一个语法错误

总而言之

if() {}
else {}
可以使用三元运算符
?:

可以使用
运算符缩短,因为此处的else语句只是多余的

因此,代码的等价物不会使用
??
运算符。

语法: var结果=a!=无效的条件为真则进一步编码:条件为假则进一步编码

在您的情况下:
var结果=国家1!=无效的“土耳其”:“阿布德”

您也可以这样做:

final result = "${country1 != null ? 'Turkey' : 'ABD'}";

你能补充一个详细的问题吗?你好,首先谢谢!我对null感到困惑。通常,我们可以对三元运算符使用双问句??是空检查运算符。例如:字符串国家=国家1??“ABD”,所以我想使用双重问题,而不是空检查。country1=country1!=??'土耳其':'阿布德';(代码给出错误)我能做什么?我知道了!谢谢医生
if() {}
else {}
if(){}
final result = "${country1 != null ? 'Turkey' : 'ABD'}";