cyb*_*Vnk 9 operators ternary dart flutter
我看过这段代码,需要对“??”进行解释。我知道三元运算符,例如“?” 然后是 true 条件,“:”之后是 false/else 条件。但是双“??”是什么意思??
提前致谢
widget.secondaryImageTop ??
(widget.height / 2) - (widget.secondaryImageHeight / 2); ```
Run Code Online (Sandbox Code Playgroud)
小智 5
你的例子:
widget.secondaryImageTop ??
(widget.height / 2) - (widget.secondaryImageHeight / 2);
Run Code Online (Sandbox Code Playgroud)
这将使用 widget.secondaryImageTop 除非它为空,在这种情况下它将使用 (widget.height / 2) - (widget.secondaryImageHeight / 2)。
来源和详细信息,包括 dartpad,您可以在其中使用预先填充的示例进行尝试: https://dart.dev/codelabs/dart-cheatsheet
该文档中的一个示例,也使用 = 符号。
??= 赋值运算符,仅当变量当前为 null 时才为该变量赋值:
int a; // The initial value of a is null.
a ??= 3;
print(a); // <-- Prints 3.
a ??= 5;
print(a); // <-- Still prints 3.
Run Code Online (Sandbox Code Playgroud)