kotlin与java 7 对比的优势:
它更加易表现:这是它最重要的优点之一。你可以编写少得多的代码。
它更加安全:Kotlin是空安全的,也就是说在我们编译时期就处理了各种null的情况,避免了执行时异常。如果一个对象可以是null,则我们需要明确地指定它,然后在使用它之前检查它是否是null。你可以节约很多调试空指针异常的时间,解决掉null引发的bug。
它是函数式的:Kotlin是基于面向对象的语言。但是就如其他很多现代的语言那样,它使用了很多函数式编程的概念,比如,使用lambda表达式来更方便地解决问题。其中一个很棒的特性就是Collections的处理方式。
它可以扩展函数:这意味着我们可以扩展类的更多的特性,甚至我们没有权限去访问这个类中的代码。
它是高度互操作性的:你可以继续使用所有的你用Java写的代码和库,因为两个语言之间的互操作性是完美的。甚至可以在一个项目中使用Kotlin和Java两种语言混合编程
基本类型
Double64
Float32
Long64
Int32
Short16
Byte8
字面上可以写明具体的类型。这个不是必须的,但是一个通用的Kotlin实践时省略变量的类型(我们马上就能看到),所以我们可以让编译器自己去推断出具体的类型。
vali=12// An IntvaliHex=0x0f// 一个十六进制的Int类型vall=3L// A Longvald=3.5// A Doublevalf=3.5F// A Float
定义常量与变量
可变变量定义:var 关键字
var<标识符>:<类型>=<初始化值>
不可变变量定义:val 关键字,只能赋值一次的变量(类似Java中final修饰的变量)
val<标识符>:<类型>=<初始化值>
常量与变量都可以没有初始化值,但是在引用前必须初始化
编译器支持自动类型判断,即声明时可以不指定类型,由编译器判断。
字符串模板
$ 表示一个变量名或者变量值
$varName 表示变量值
${varName.fun()} 表示变量的方法返回值:
NULL检查机制
Kotlin的空安全设计对于声明可为空的参数,在使用时要进行空判断处理,有两种处理方式,
字段后加 !! 像Java一样抛出空异常,另一种字段后加 ? 可不做处理返回值为 null或配合 ?: 做空判断处理
可变长参数函数
函数的变长参数可以用vararg关键字进行标识:
fun vars(vararg v:Int){
for(vt in v){
print(vt)
}
}
// 测试
fun main(args:Array){
vars(1,2,3,4,5)// 输出12345
}