包声明

  1. package site.nebulas
  2. import java.util.*

  1. class Hello {
  2. }

函数

  1. fun main(args: Array<String>) {
  2. println("Hello, world!")
  3. }

可变长参数函数

  1. fun vars(vararg v:Int){
  2. for(vt in v){
  3. print(vt)
  4. }
  5. }

lambda(匿名函数)

  1. val sumLambda: (Int, Int) -> Int = {x,y -> x+y}

变量

  1. var <标识符> : <类型> = <初始化值>

常量

  1. val <标识符> : <类型> = <初始化值>

Late initialization

  1. lateinit var myUtil: MyUtil

字符串模板

$ 表示一个变量名或者变量值

$varName 表示变量值

${varName.fun()} 表示变量的方法返回值:

  1. val s1 = "a is $a"
  2. val s2 = "${s1.replace("is", "was")}, but now is $a"

NULL检查机制

  1. //类型后面加?表示可为空
  2. var age: String? = "23"
  3. //抛出空指针异常
  4. val ages = age!!.toInt()
  5. //不做处理返回 null
  6. val ages1 = age?.toInt()
  7. //age为空返回-1
  8. val ages2 = age?.toInt() ?: -1

类型检测

  1. if (obj is String) {
  2. // 做过类型判断以后,obj会被系统自动转换为String类型
  3. return obj.length
  4. }

区间

  1. for (i in 1..4) print(i) // 输出“1234”
  2. for (i in 1..4 step 2) print(i) // 输出“13”
  3. // 使用 until 函数排除结束元素
  4. for (i in 1 until 10) { // i in [1, 10) 排除了 10
  5. println(i)
  6. }