让开发人员更快乐的
一门现代编程语言。
永远开源 Github

在 IDE 中试用 在线试用

适用于

Kotlin 近期动态

Kotlin 抢先体验预览

在正式版发布前试用最新的 Kotlin 特性

了解更多

试用 Kotlin

最简版
面向对象的 Hello
协程
更多示例
                    fun main() {
                        println("Hello World")
                    }
                

为什么选择 Kotlin?

  • 简洁

    大大减少样板代码的数量

    /*
     使用一行代码创建一个包含 getters、 setters、 `equals()`、 `hashCode()`、 `toString()` 以及 `copy()` 的 POJO:
    */
    
    data class Customer(val name: String, val email: String, val company: String)
    
    // 或者使用 lambda 表达式来过滤列表:
    
    val positiveNumbers = list.filter { it > 0 }
    
    // 想要单例?创建一个 object 就可以了:
    
    object ThisIsASingleton {
        val companyName: String = "JetBrains"
    }
    
  • 安全

    避免空指针异常等整个类的错误

    /*
     彻底告别那些烦人的 NullPointerException——著名的十亿美金的错误
    */
    
    var output: String
    output = null   // 编译错误
    
    // Kotlin 可以保护你避免对可空类型进行误操作
    
    val name: String? = null    // 可空类型
    println(name.length())      // 编译错误
    
    // 并且如果类型检测正确,编译器会为你做自动类型转换
    
    fun calculateTotal(obj: Any) {
        if (obj is Invoice)
            obj.calculateTotal()
    }
    
  • 互操作性

    充分利用 JVM、Android 和浏览器的现有库

    /*
     使用 JVM 上的任何现有库,因为有 100% 的兼容性,包括 SAM 支持。
    */
    
    import io.reactivex.Flowable
    import io.reactivex.schedulers.Schedulers
    
    Flowable
        .fromCallable {
            Thread.sleep(1000) //  模仿高开销的计算
            "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!"
    }
    
  • 工具友好

    可用任何 Java IDE 或者使用命令行构建

Kotlin 用途集锦

esc