zoukankan      html  css  js  c++  java
  • kotlin字符串比较&空值处理&when表达式

    字符串比较:

     字符串的比较也是实际中比较常见的,下面来看下它的比较跟java中有啥不同,下面走起!

    如我们所预期,其结果:

    下面再来:

    如果是java,结果肯定是为false,因为"=="是比较的是地址,但是!!见证奇迹:

    所以在kotlin中的字符串的==其实跟equals效果一样,下面改成equals:

    结果就不打印了,肯定是true。下面再来换成英文试试:

    这个没啥好说的,下面再来改:

    也好理解,但是!!如果想不区分大小写,在kotlin中是如何写的呢?

    看结果:

    也就是说在kotlin中对equals方法进行了重载,点击源码看下该重载的方法:

    空值处理:

    对于空值的处理在实际编码中也是非常重要的,所以看下在kotlin中是如何对它进行处理的:

    编译运行:

    接着来传一个null值试一下:

    看一下提示是:

    呃~~也就是说!

    这点比java要强呀,在实际项目中上线之后出现空指针异常比比皆是,基本上每个程序员都无一幸免,但是想一下,有了kotlin这种机制直接就把空指针的可能性在编译期就可扼杀了,是不是kotlin要比java人性呢?哈哈,先不过多对新语言做评论,因为还是小白还木有发言权,回到正题,那如果要能将参数支持传null该如何处理呢?

    好奇怪的语法,这时立马报错信息就没了,下面运行看下结果 :

    所以在刚才查看equals源码,也能看到它的身影:

    when表达式:

    直接上代码来理解,先不对它做过多解释:

    看输出结果:

    其实跟java中的swich功能一样,但是!!!是不是觉得kotlin写起来更加清爽!!

    下面用这个表达式来改造一下之前写过的DEMO,如博客:http://www.cnblogs.com/webor2006/p/7684357.html,其中有个写日志的DEMO:

    其对应的代码如下:

    这时对它进行一下升级,给其中的数字全转换成中文:

    那正好可以用这个when表达式来改写,如下:

    编译运行:

  • 相关阅读:
    HTTP 协议中的并发限制及队首阻塞问题
    聊聊JMM
    聊聊CacheLine
    git解决本地建立git仓库 连接远程git仓库出现拒绝合并问题
    django 本地项目部署uwsgi 以及云服务器部署 uwsgi+Nginx+Docker+MySQL主从
    我的第一篇播客
    大爷的超市管理系统——冲刺第一天
    能混绝不C——凡事预则立
    2020软件工程团队作业——05
    2020软件工程作业——04
  • 原文地址:https://www.cnblogs.com/webor2006/p/7710446.html
Copyright © 2011-2022 走看看