主题 : Kotlin真的会取*JAVA吗
级别: 童生
UID: 113563
积分:10 加为好友
威望: 0 精华: 0
主题:10 回复:1
注册时间:2017-05-24
在线时长:0
1#   发表于:2017-06-06 13:34:51  IP:119.17.*.*
北京上课了讲师指出,自从Kotlin 成为 Android 开发一级语言,Kotlin确实以其实用,高效赢得了海外很多公司和开发者的认可,比如Square的Jake大神一直在推Kotlin。Kotlin在国外至少有将近2年的应用生产环境的实践(非JetBrains内部实践应用)。在移动开发中,相比iOS程序员,Android程序员总是很幸运,因为我们有很多优秀好用的工具(Android Studio等),选用Kotlin,则是Google 为开发者提供高效的开发工具的一贯作风。

先来晒一晒Kotlin的几大特点:
Kotlin是静态类型编程语言,用于现代多平台应用,100%可与Java和Android互操作 [java] view plain copy

Kotlin是非常简介的编程语言
Create a POJO with getters, setters, equals(), hashCode(), toString() and copy() in a single line:

data class Customer(val name: String, val email: String, val company: String)
Or filter a list using a lambda expression:

val positiveNumbers = list.filter { it > 0 }
Want a singleton? Create an object:

object ThisIsASingleton {
val companyName: String = "JetBrains"
}

[java] view plain copy

Kotlin 很安全
Get rid of those pesky NullPointerExceptions, you know, The Billion Dollar Mistake

var output: String
output = null // Compilation error
Kotlin protects you from mistakenly operating on nullable types

val name: String? = null // Nullable type
println(name.length()) // Compilation error
And if you check a type is right, the compiler will auto-cast it for you

fun calculateTotal(obj: Any) {
if (obj is Invoice)
obj.calculateTotal()
}

[java] view plain copy

方便使用 兼容JVM上现有library
Use any existing library on the JVM, as there’s 100% compatibility, including SAM support.

import io.reactivex.Flowable
import io.reactivex.schedulers.Schedulers

Flowable
.fromCallable {
Thread.sleep(1000) // imitate expensive computation
"Done"
}
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.single())
.subscribe(::println, Throwable::printStackTrace)
Target either the JVM or JavaScript. Write code in Kotlin and decide where you want to deploy to

import kotlin.browser.window

fun onLoad() {
window.document.body!!.innerHTML += "
Hello, Kotlin!"
}
1 共1页