25 October 2018

1. Overview

可以从learnxinyminutes获取一些语言学习的摘要信息,以后可以借此制作一些cheetsheet。

2. Hello World

Example 1. hello-world.kt
fun main(args: Array<String>) {
    println("Hello, World!")
}
  1. Kotlin文件后缀必须是kt

  2. kotlinc hello-world.kt -include-runtime -d HelloWorld.jar编译kotlin文件

  3. java运行编译后的jar包

include- runtime is a flag for the compiler to produce a self-contained and runnable JAR by including the Kotlin runtime into the resulting assembly

和Groovy相比,后者可以执行运行,相当于脚本语言,类似的,kotlin如果像脚本语言那样运行的话,需要采用kotlinc -script选项。

3. 华氏和摄氏温度对照

对照公式如下

\(^\circ{C}=(5/9)(^\circ{F}-32)\)

Example 2. fahr-celsius.kt
fun main(args: Array<String>) {
    val lower = 0;
    val upper = 300;
    val step = 20;
    var fahr = 0.0;  (1)
    var celsius = 0.0;

    while (fahr <= upper) {
        celsius = (5.0/9.0) * (fahr - 32.0);
        println("%3.0f %6.1f".format(fahr, celsius));  (2)
        fahr = fahr + step;
    }
}
1 设置初始值为小数,则变量自动成为Double类型,第9行的数学计算才能够得到正常的小数值
2 不同于scala,kotlin使用string template进行字符串的interpolation

类似Scala, 在Kotlin中,

  • val 代表value, 是常量

  • var 代表variable,是变量

另外,Kotlin 同样具有Scala那样的REPL环境。 而且,Kotlin 的主函数不必位于一个类(Class)中