如果没有其他情况, Dart 是否支持语法以内联?有时我发现自己处于一种颤振的布局中,这可能真的很有帮助
new Row(children: <Widget>[
new Text(item.name),
item.name2 != null ? new Text(item.name2) : new Container(),
]
在此示例中,不需要空容器,因此我希望这样:
new Row(children: <Widget>[
new Text(item.name),
item.name2 != null ? new Text(item.name2),
]
答案 0 :(得分:2)
您可以这样做:
myVar == null ? 0 : myVar
如果myVar
为null
,则为0
,否则为myVar
答案 1 :(得分:1)
如果没有其他则没有内联 但是在您的情况下,您仅使用if来检查它是否为空
飞镖有:
ast_node
在这里dart检查someVar == null吗?如果为true,则将x值设置为0;如果为false,则将其设置为someVar值
但是flutter永远不会让您在其小部件树中添加null,因此您不能在行/列中使用它
答案 2 :(得分:1)
如果你需要调用一个函数,你可以这样使用:
String s; //null
s == null ? print("if shorthand working") : {};
对于变量赋值:
String c = "not null value";
String b; //null
var a = b ?? c;
现在 a = c。
<块引用>Visual Studio Code 提示:添加此项以忽略一行的 linting // 忽略:不必要的语句
答案 3 :(得分:0)
实际上已经计划在Dart语言本身中包含类似的功能。
要预览外观,请看Remi的这篇文章
https://medium.com/flutter-community/quick-tip-sync-a-taste-of-the-future-9be4cd6993f4
以及一些伴随的Github问题
https://github.com/flutter/flutter/issues/17862