Dart 空感知操作符:??

示例

写了如下代码:

var str1 = "hello";
var str2 = "world";
var result = str1 ?? str2.toUpperCase(); //如果str1不为空,则执行后面的语句
print(result);

代码可以正常执行,但是报了如下错误:

Warning: Operand of null-aware operation '??' has type 'String' which excludes null.  

因为空感知操作符??通常用于左侧操作数可能为空的情况。但是,在上面的代码中,str1被声明为不可空的String类型,并且它不能为空。因此,在这种上下文中使用空感知运算符是不必要的,并且可能导致混淆。 

如何正确使用 ??空感知操作符

// Example 1:
var userInput = null;
var defaultValue = "default";
var result = userInput ?? defaultValue;

console.log(result); // Output: "default"

在上面的例中,如果userInput为空或未定义,则??操作符将返回defaultValue,否则将返回userInput的值。

你可能感兴趣的:(Dart,前端,android,javascript)