美文网首页
String非空判断

String非空判断

作者: 秋分落叶 | 来源:发表于2019-09-24 11:18 被阅读0次

    Dart 里的 String是不可变对象;要检测两个 String 的内容是否一样时,我们使用 == 进行比较;如果要测试两个对象是否是同一个对象(indentity test),使用 identical 函数。

    示例

    void _stringDeals() {
        var abc = ' abc ';
        ///带空格
        var abcUp = abc.toUpperCase();
        ///字符大写
        var abcTrim = abc.trim();
        ///去掉空格
        ///assert 是语言内置的断言函数,仅在检查模式下有效,如果断言失败则程序立刻终止
        ///判断内容是否相等
        assert(abc == abcUp);
        ///判断对象是否相等
        assert(!identical(abc, abcUp));
      }
    

    关键语句
    Dart 里所有的东西都是对象,包括 int、函数。

    判空问题

    场景一
    用String Api 的 length 函数 去判断

    var value = "1234567";
    if (value.length != 0) {
          print("value不为空");
        }
    

    这样会遇到一个问题就是value 如果为Null 那么Flutter就红屏了 程序结束
    var value = null;
    程序出错结束
    非常不推荐这么取判断

    场景二
    那么我们用String Api的 isNotEmpty 函数 去判断

    var value = "1234567";
     if (value.isNotEmpty) {
          print("value不为空");
        }
    

    这样我们又会碰到同样的问题就是如果value=null
    var value = null;
    程序抛出异常
    Another exception was thrown: NoSuchMethodError:
    The getter 'isNotEmpty' was called on null.
    出错点后面的程序都不会继续执行

    场景三
    我们用String != null 去判断

    var value = "1234567";
     if (null !=value ) {
          print("value不为空");
        }
    

    这样我们碰到value=null 或者 value有值就不会报错
    这样的场景多发生在后端给返回的字符串String 是null 的情况

    总结

    结合实际出发 后端规范那就不需要去用!=null 来判断 ,但是不能用value.length函数来判断,这样非常有问题。保守就是使用null !=value

    相关文章

      网友评论

          本文标题:String非空判断

          本文链接:https://www.haomeiwen.com/subject/sljmyctx.html