Kotlin是什么
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。(更多请参考英文官网或中文官网)
Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。(新闻来源)
Kotlin基础语法

包声明
代码文件的开头一般为包的声明:


更多详细信息请看知乎:https://zhuanlan.zhihu.com/p/27162805
导入
除了默认导入之外,每个文件可以包含它自己的导入指令。(类似与Python)
可以导入一个单独的名字,如:
import foo.Bar // 现在 Bar 可以不用限定符访问
也可以导入一个作用域下的所有内容(包、类、对象等):
importfoo.* // “foo”中的一切都可访问
如果出现名字冲突,可以使用as关键字在本地重命名冲突项来消歧义:
importfoo.Bar // Bar 可访问
importbar.BarasbBar // bBar 代表“bar.Bar”
关键字 import 并不仅限于导入类;也可用它来导入其他声明:
-顶层函数及属性
-在对象声明中声明的函数和属性
-枚举常量
与 Java 不同,Kotlin 没有单独的“import static”语法; 所有这些声明都用 import 关键字导入。
函数定义
函数定义使用关键字 fun

无返回值的函数(类似Java中的void):


定义常量和变量
可变变量定义:var 关键字
var <标识符> : <类型> = <初始化值>
不可变变量定义:val 关键字,只能赋值一次的变量(类似Java中final修饰的变量)
val <标识符> : <类型> = <初始化值>
常量与变量都可以没有初始化值,但是在引用前必须初始化
编译器支持自动类型判断,即声明时可以不指定类型,由编译器判断。

注释(跟C#的注释一样)
// 这里是一个单行注释
/* 这是一个多行的
块注释。 */
与 Java 不同, Kotlin 中的块注释允许嵌套。
字符串模板
$ 表示一个变量名或者变量值
$varName 表示变量值
${varName.fun()} 表示变量的方法返回值:

NULL检查机制
Kotlin的空安全设计对于声明可为空的参数,在使用时要进行空判断处理,有两种处理方式,字段后加!!像Java一样抛出空异常,另一种字段后加?可不做处理返回值为 null或配合?:做空判断处理
//类型后面加?表示可为空
var age:String? = "23"
//抛出空指针异常
val ages=age!!.toInt()
//不做处理返回 null
val ages1 = age?.toInt()
//age为空返回-1
val ages2 = age?.toInt()?:-1
当一个引用可能为 null 值时, 对应的类型声明必须明确地标记为可为 null。
当 str 中的字符串内容不是一个整数时, 返回 null:
fun parseInt(str:String) : Int?{
}
以下实例演示如何使用一个返回值可为 null 的函数:
类型检测及自动类型转换
我们可以使用 is 运算符检测一个表达式是否某类型的一个实例(类似于Java中的instanceof关键字)。
或者
甚至还可以
区间
区间表达式由具有操作符形式 .. 的 rangeTo 函数辅以 in 和 !in 形成。 区间是为任何可比较类型定义的,但对于整型原生类型,它有一个优化的实现。
更多内容请看:http://tli-tli.com/