包声明
package site.nebulasimport java.util.*
类
class Hello {}
函数
fun main(args: Array<String>) {println("Hello, world!")}
可变长参数函数
fun vars(vararg v:Int){for(vt in v){print(vt)}}
lambda(匿名函数)
val sumLambda: (Int, Int) -> Int = {x,y -> x+y}
变量
var <标识符> : <类型> = <初始化值>
常量
val <标识符> : <类型> = <初始化值>
Late initialization
lateinit var myUtil: MyUtil
字符串模板
$ 表示一个变量名或者变量值
$varName 表示变量值
${varName.fun()} 表示变量的方法返回值:
val s1 = "a is $a"val s2 = "${s1.replace("is", "was")}, but now is $a"
NULL检查机制
//类型后面加?表示可为空var age: String? = "23"//抛出空指针异常val ages = age!!.toInt()//不做处理返回 nullval ages1 = age?.toInt()//age为空返回-1val ages2 = age?.toInt() ?: -1
类型检测
if (obj is String) {// 做过类型判断以后,obj会被系统自动转换为String类型return obj.length}
区间
for (i in 1..4) print(i) // 输出“1234”for (i in 1..4 step 2) print(i) // 输出“13”// 使用 until 函数排除结束元素for (i in 1 until 10) { // i in [1, 10) 排除了 10println(i)}
