目标平台
Kotlin适用于现今使用Java的所有环境。 除了Java之外,Kotlin还可以编译成为JavaScript,允许你在浏览器中运行Kotlin。最常见的应用场景为:
- 用于服务器后端开发(典型的代表是Web应用后端)
- 用于Android开发
主要特征
1. 类型推导
如下,在声明x这个变量时,由于变量初始化为整型值,Kotlin可以自动判断出它的类型是Int。编译器这种从上下文推断变量类型的能力被称作类型推导。
val x = 1
// val x: Int = 1
2. 函数式和面向对象
函数式编程核心概念:
1. 头等函数: 把函数当作值使用,可以用变量保存它,把它当作参数传递,或者当作其他函数的返回值。
fun main(args: Array<String>) {
// 将test()函数作为test03()函数的参数传递,并用变量a保存它
val a = test03(test())
}
fun test(): Int {
// 定义一个函数,并返回一个Int类型的值
val a = 1
return a
}
fun test02(): Int {
// 将test()函数作为test02()函数的返回值
return test()
}
fun test03(i: Int) {
println("test03 i=$i")
}
2. 不可变性: 使用不可变对象(用val
修饰,相当于Java中的final
),这保证了它们的状态在其创建后不能再改变。
3. 无副作用: 使用的是纯函数。此类函数在输入相同时会产生同样的结果,并且不会修改其他对象的状态,也不会和外面的世界交互。(暂未理解)
Kotlin的设计哲学
- 务实
- 简洁
- 安全(避免NullPointerException)
- 互操作性