Kotlin 基础语法
Kotlin 文件以 .kt 为后缀。
包声明
kotlin源文件不需要相匹配的目录和包,源文件可以放在任何文件目录。
以上例中 test() 的全名是 com.runoob.main.test、Runoob 的全名是 com.runoob.main.Runoob。
如果没有指定包,默认为default包。

默认导入
有多个包会默认导入到每个test 文件中:
kotlin.*
kotlin.annotation.*
kotlin.collections.*
kotlin.comparisons.*
kotlin.io.*
kotlin.ranges.*
kotlin.sequences.*
kotlin.text.*
函数定义
函数定义使用关键字 fun,参数格式为:参数 : 类型





定义常量与变量
可变变量定义:var 关键字
定义: var <标识符> : <类型> = <初始化值>
不可变变量定义(常量):val 关键字,只能赋值一次的变量(类似Java中final修饰的变量)
定义: val <标识符> : <类型> = <初始化值>

常量与变量都可以没有初始化值,但是在引用前必须初始化
编译器支持自动类型判断,即声明时可以不指定类型,由编译器判断。
注释
Kotlin 支持单行和多行注释,与 Java 不同, Kotlin 中的块注释允许嵌套。实例如下:

字符串
$ 表示一个变量名或者变量值
$varName 表示变量值
${varName.fun()} 表示变量的方法返回值:

NULL检查机制
Kotlin的空安全设计对于声明可为空的参数,在使用时要进行空判断处理,有两种处理方式,字段后加!!像Java一样抛出空异常,另一种字段后加?可不做处理返回值为 null或配合?:做空判断处理

当一个引用可能为 null 值时, 对应的类型声明必须明确地标记为可为 null。
当 str 中的字符串内容不是一个整数时, 返回 null:

以下实例演示如何使用一个返回值可为 null 的函数:

类型检测及自动类型转换
我们可以使用 is 运算符检测一个表达式是否某类型的一个实例(类似于Java中的instanceof关键字)。

区间
区间表达式由具有操作符形式..的 rangeTo 函数辅以 in 和 !in 形成。
区间是为任何可比较类型定义的,但对于整型原生类型,它有一个优化的实现。以下是使用区间的一些示例:

实例测试:

网友评论