Kotlin简介

Kotlin简介

官网对Kotlin的介绍是:

Statically typed programming language for modern multiplatform applications
100% interoperable with Java™ and Android™

提供多平台应用支持的静态类型编程语言。可与Java和Android进行100%互操作。

为什么要使用Kotlin

创建一个包含getters, setters, equals(), hashCode(), toString() 还有copy()的POJO类,只需一行代码:

data class Customer(val name: String, val email: String, val company: String)

或者使用lambda表达式过滤一个list:

val positiveNumbers = list.filter { it > 0 }

Java是在java8中才引入了lambda表达式,而且由于类库兼容性等问题,在一些旧项目上,我们是无法使用这个特性的。但是Kotlin提供的lambda,只需JDK6+版本就可以支持。

创建一个单例对象:

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

去除那些可能导致数十亿美元损失的令人讨厌的空指针异常。

var output: String
output = null   // Compilation error

Kotlin可以保护你免受使用空类型对象的误操作。

val name: String? = null    // Nullable type
println(name.length())      // Compilation error

如果你检测到一个类型是正确的,编译器会自动帮你转换。

fun calculateTotal(obj: Any) { //此处的Any相当于Java的Object
    if (obj is Invoice)
        obj.calculateTotal() //直接调用,无需手动进行类型转换:((Invoice)obj).calculateTotal()
}
  • 互操作(Interoperable
    可以在Kotlin中使用任意现存的JVM类库,100%适配,包含SAM支持。
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)

无论是JVM还是JavaScript,只需使用Kotlin编写一次,然后你就可以在任何地方进行部署。

import kotlin.browser.window

fun onLoad() {
    window.document.body!!.innerHTML += "<br/>Hello, Kotlin!"
}

每种语言都需要相应的开发工具,这点在JetBrains做的尤其最出色。
Kotlin目前提供了五种编写方式:

  1. 在线编辑 Try Kotlin
  2. IntelliJ IDEA
  3. Android Studio
  4. Eclipse
  5. 命令行编译工具
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容