kotlin java 比较_都说Kotlin比Java好,看了这些你就知道为什么了

原标题:都说Kotlin比Java好,看了这些你就知道为什么了

字符串模版

你还在为java中使用大量的加号连接字符串和变量而感到烦恼吗?快来试试Kotlin中的字符串模版吧!一切都只需在一个字符串中,就能完成。让我们从下图中体会下字符串模版的便捷之处。

64eb5b671fe9046107f0f950f5935d8f.png

java版本

258414134ed548223d82c71a61787b84.png

kotlin版本

范围表达式

在Kotlin可以通过 a..b 这种格式的范围表达式,生成一个可遍历的序列。在编程练习中经常写的for循环也可以以一种更加轻快的方式实现

Java版for循环:for(int i=0;i<10;i++){...}

Kotlin版for循环:for(i in 1..9){...}

when表达式

在Java中,当选择条件特别多的时候,可能会使用 switch 语句来代替 ifelse 语句。但是 switch 的功能比较当一,只能进行值的比较。而 Kotlin 中的 when 表达式则拥有更加丰富的功能。首先你既可以把它当作一个表达式使用,又能将它作为一个普通的语句。其次它不当当是进行值的比较,还能判断是否在某一个范围内、是否是某个类型的实例等等。甚至当你没有给定目标值时,可以填写任何的布尔表达式。看下下面一段when语句的使用实例,你可以想想如果用java的话该怎么实现。

df1936cef2db499b594131be01d208f6.png

更现代的lambda表达式

就是是怎样个现代化,语言也不好描述,直接上例子,你们体会体会。

6c428d8197575f80801c91cf94f54726.png

java版本

0005533ac9521b414e663c811af35df3.png

kotlin版本

Kotlin中lambda表示会自动推断参数的类型,以及写法也更加的方便。

函数参数

在C++和C中可以通过函数指针将函数当作参数使用。而Java则只能够借助接口进行实现,尽管JDK1.8对lambda表达式的支持,让代码的写法可以更加简洁。但因为没有语法层面的支持,这个处理过程依旧是重量级的,你需要为了一个函数而单独创建一个接口。而Kotlin对函数参数的原生支持,使得整个操作都十分的轻量级。下面来看一段函数参数的实例代码:

292150913c85193df513e100cc1ba87e.png

定义一个接收函数参数的函数max

ae761e1afce68a866c98c1d912421552.png

使用

在这个实例中处了函数参数外,还使用到了即将要提及到扩展函数

扩展函数

在Java中你如果想要为一个类进行功能上的扩展,需要实现一个子类来继承这个类。在Kotlin中,你不必为了添加一个小小的功能,而又去创建一个新的类。通过使用扩展函数,直接在这一个类的基础上为他增添新的功能,并能够直接通过这个类进行调用。

上一个例子中就为String类扩展了一个max,这样,在之后所有的字符串中都可以直接调用这个函数

委托

在学习C#的时候,就发现了这个Java所不具有的语言特性。现在作为Java的替代者,Kotlin也具有了这么一个语言特性。关于委托的详细内容,等之后咱会专门写一篇文章进行详细的描述。

运算符重载

这是一个C++中有的特性。对于一些常用运算:比较大小、加减运算、下标运算等等,将其重载为 “ < + [] ” 这样子的运算符,使得代码的书写更加的简洁美观。关于运算符的详细内容可以在文章开头提到我的CSDN博客和Kotlin学习网中《C++能做的,Kotlin也能做到:运算符重载总结》这篇文章进行了解

空指针安全

初学者在写Java程序时,碰到最多的一个异常,想必就是 NullPointException(空指针异常)啦。一不小心,就在那个角落里忘记对类进行初始化了,结果到了开始运行的时候才发现错误。而在Kotlin中这样的问题会直接在编译的时候被发现,使你无法编译通过,甚至借助IDEA这样的IDE工具,在编码阶段就会出现错误提示。将问题扼杀在摇篮之中。

协程

协程又是Kotlin中一个完全新的特性,在Kotlin中也是最近才出现的。作为线程的替代者,它的优点不言而喻。关于协程的详细内容,可以参考文章:Kotlin中线程的代替者——协程,究竟有什么好?、在Kotlin 中如何轻松愉快的处理异步操作。

总结

还在等什么,快来学习Kotlin吧,Java什么的就让它死在沙滩上吧!

【更多消息请到Kotlin学习网了解】返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值