Google2017年I/O大会圆满结束了,在此次大会上谷歌爸爸把未来的重点移到了人工智能上,继续主推自家的TensorFlow,对Android开发者来说唯一的一个惊喜就是Kotlin这门语言成为了官方承认的开发语言(当然我们不能忘了Android O)。特意开了一个Kotlin的坑,记录自己学习的历程。
1、Kotlin简介
Kotlin是JetBrains公司开发,基于JVM的一种语言,官网说可以百分百兼容Java语言,它能够进行服务器端,Android端和web前端(兼容JavaScript)的开发。该语言相对于Java的优点解决了Java的空指针异常这一世界性难题,并且Kotlin和Java之间可以互相调用。
1.1 Kotlin环境搭建
1.2 Kotlin的优势
Kotlin没有基础类型(类型部分会在后面稍作介绍),支持Lambda表达式和闭包,支持的泛型是安全的。
2、 Hello Kotlin
fun main(args: Array<String>){
println("Hello Kotlin!")
}
这个函数的目的就是输出“Hello Kotlin!”这句话,最后编译的结果如下:
3、Kotlin的基本类型
关键字 | 含义 |
var | 定义变量 |
val | 定义常量 |
fun | 定义方法 |
Unit | 默认的方法返回值,类似于void |
vararg | 可变参数 |
$ | 字符串模板(取值) |
位运算符 | or and shl shr ushr xor inv |
in | 在某个范围中 |
downTo | 递减,循环可用,每次减一 |
step | 步长,循环可用 |
when | 类似于java的switch,但是可以匹配值、值的范围,类型与参数 |
is | 判断类型用,类似于instanceof() |
4、定义基本函数和类
fun sum(a: Int, b: Int): Int {
return a+b
}
如果有返回值的话,需要加上:后面跟上返回值的类型。其实没有返回值的函数默认返回的是Unit类型,类似于Java方法的void。上面的函数只有表达式,而且本身就是返回值,这样的话可以直接写成下面的样子
fun sum(a: Int, b: Int) = a + b
class MainClass {
fun main(args: Array<String>) {
println("Hello World!")
}
}
但是我们发现这个文件好像不能直接run,那我们只能先build整个项目,以便查看这个文件编译之后的字节码文件(.class文件),如下:
可以看到Kotlin的类文件其实也是编译成了类似于Java的文件,而Java的main方法都是静态的static,而这里并不是,同样的类和函数都是final类型的,这也对类的继承和方法的重写有影响,这些问题后面再去解决,入门篇就先写这么多吧。