从Java到Kotlin
英文原文:https://github.com/MindorksOpenSource/from-java-to-kotlin
我的个人看法
Kotlin一度成为上周和本周的一个热点。androidStudio 3.0上官方直接得到了支持。现在的我并没有那么多时间投入到新的语法学习中。但丝毫不能赶走我对他的热情。因为对照最近一年我在写的ES6(ECMAScript 6 JavaScript 2015年的语法糖)感觉Kotlin这是给android程序员的一种福利。在这之前,当我试图开始用ES6到工作中后,发现java的语法确实有些保守和老旧了。那么现在你可以不用担心了。Kotlin的到来,将是下一个春天,因它并不是很难。语法够简洁明朗。吸收了多数优秀新语言的特性。使得你只需要花小成本的投入即可获得高效的编码效率。这无非是一件特别棒的事情。
如果你是一名android开发者,又不想立刻投入到新的语言中来,不妨看看这篇文章对两门语言的一个写法对比。相信你会喜欢的。
接下来让我们一起来划水吧。
打印日志
- Java
1 | System.out.print("Amit Shekhar"); |
- Kotlin
1 | print("Amit Shekhar") |
常量与变量
- Java
1 | String name = "Amit Shekhar"; |
- Kotlin
1 | var name = "Amit Shekhar" |
null声明
- Java
1 | final String name = null; |
- Kotlin
1 | val name : String? = null |
空判断
- Java
1 | if(text != null){ |
- Kotlin
1 | val length = text?.length |
字符串拼接
- Java
1 | String firstName = "Amit"; |
- Kotlin
1 | val firstName = "Amit" |
换行
- Java
1 | String text = "First Line\n" + |
- Kotlin
1 | val text = """ |
三元表达式
- Java
1 | String text = x > 5 ? "x > 5" : "x <= 5"; |
- Kotlin
1 | val text = if (x > 5) |
类型判断和转换 (声明式)
- Java
1 | if(object instanceof Car){ |
- Kotlin
1 | if (object is Car) { |
类型判断和转换 (隐式)
- Java
1 | if(object instanceof Car){ |
- Kotlin
1 | if (object is Car) { |
多重条件
- Java
1 | if(score >= 0 && score <= 300 ){} |
- Kotlin
1 | if (score in 0..300) { } |
更灵活的case语句
- Java
1 | int score = // some score; |
- Kotlin
1 | var score = // some score |
for循环
- Java
1 | for (int i = 1; i <= 10 ; i++) { } |
- Kotlin
1 | for (i in 1..10) { } |
更方便的集合操作
- Java
1 | final List<Integer> listOfNumber = Arrays.asList(1, 2, 3, 4); |
- Kotlin
1 | val listOfNumber = listOf(1, 2, 3, 4) |
遍历
- Java
1 | for (Car car : cars) { |
- Kotlin
1 | cars.forEach { |
方法定义
- Java
1 | void doSomething() { |
- Kotlin
1 | fun doSomething() { |
带返回值的方法
- Java
1 | int getScore() { |
- Kotlin
1 | fun getScore(): Int { |
无结束符号
- Java
1 | int getScore(int value) { |
- Kotlin
1 | fun getScore(value: Int): Int { |
constructor 构造器
- Java
1 | public class Utils { |
- Kotlin
1 | class Utils private constructor() { |
Get Set 构造器
- Java
1 | public class Developer { |
- Kotlin
1 | data class Developer(val name: String, val age: Int) |
- Java
1 | public class Utils { |
- Kotlin
1 | fun Int.triple(): Int { |
License
1 | Copyright (C) 2017 MINDORKS NEXTGEN PRIVATE LIMITED |
原文:https://github.com/MindorksOpenSource/from-java-to-kotlin