有一个通用的JavaScript习惯用法(也用于其他几种语言),以便在某些情况为空时使用替代值。
return theValue || "don't know";
Dart有一种类型安全的替代方法,它不依赖于隐式的真实/虚假转换,并且在80%到90%的情况下都执行相同的操作:
return theValue ?? "don't know";
或类似的JavaScript:
myValue = myValue || "don't know";
在Dart中:
myValue ??= "don't know";
JavaScript也有类似的习惯用法,可以有条件地使用可能具有null
值的内容进行操作:
return theValue && theValue.shoeSize;
Dart的类型安全替代项:
return theValue?.shoeSize
但是Dart没有涵盖一个非常常见的情况:
return theValue && getShoeSize(theValue);
在Dart中:
return theValue == null ? null : getShoeSize(theValue);
考虑一下,如果Dart拥有这样的运算符,它可能会像这样:
return theValue ?& getShoeSize(theValue);
或类似的东西。由于文档中几乎没有类似的东西出现,因此我认为带有显式? null :
的标准三进制是Dart程序员所做的最好的事情?