flutter 如何使用三元运算符以简单的方式检查字符串是否为空

vwoqyblh  于 2023-02-20  发布在  Flutter
关注(0)|答案(5)|浏览(382)

我将在10个文本小部件中显示一些变量。这些变量可以是字符串,也可以是空的。
有一种比这更简单的方法来进行验证,一个接一个:?

object.name.isNotEmpty ? object.name :  "not typed"
qncylg1j

qncylg1j1#

试试这个
检查是否为空字符串

object.name ?? 'default value'

检查它是否为null或空字符串

object.name?.isEmpty ?? 'default value'

??双问号运算符表示"if null"。以下面的表达式为例。String a = b ?? 'hello';这意味着a等于b,但如果b为null,则a等于'hello'。

8wtpewkr

8wtpewkr2#

object.name ??= "not typed";

如果object.name为空,则它会赋值 "not typed"
您还可以使用双问号来检查其他内容是否为null以及是否为其分配了其他值:

object.name = null ?? "not typed"; // result: object.name = "not typed";
object.name = "typed" ?? "not typed"; // result: object.name = "typed";

编辑:
如果需要检查某个字符串是否为空字符串,可以使用tenary expression,但是没有更多的运算符或string methods

object.name = object.name != null && object.name.isNotEmpty ? object.name : "not typed";
wko9yo5t

wko9yo5t3#

如果我没理解错的话,你只需要简单地检查某个变量是否为空,然后相应地赋值给一个变量,为此你可以像这样使用OR运算符:

var x = object.name || "not typed"

如果object.name是真的(不是空字符串""),那么它将被赋值给你的变量(在本例中是x).如果object.name是空字符串/falsey,那么"not-typed"将被赋值给x.

elcex8rz

elcex8rz4#

我认为提供默认值最方便的方法是扩展String类。
因此,使用如下方法创建一个类StringExtension

extension StringExtension on String {
  String def(String defaultValue) {
    return isNotEmpty ? this : defaultValue;
  }
}

在您看来,您现在只需:

import 'package:code/helpers/string_extension.dart';
String value;

@override
Widget build(BuildContext context) {
  return Text(value.def("Unknown"))
}
gc0ot86w

gc0ot86w5#

要在JS中使用三元运算符检查字符串是否为空,可以用途:

let n = ""

console.log(n.length > 0 ? "The string is not empty" : "The string is empty");

相关问题