一、Kotlin 简介
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。
Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。
为什么选择 Kotlin?
- 简洁: 大大减少样板代码的数量。
- 安全: 避免空指针异常等整个类的错误。
- 互操作性: 充分利用 JVM、Android 和浏览器的现有库。
- 工具友好: 可用任何 Java IDE 或者使用命令行构建。
- 函数式: Kotlin 是基于面向对象的语言,它使用了现下非常流行的函数式编程的概念,如使用lambda表达式很方便地解决问题。其中一个很棒的特性就是Collections的处理方式
- 可以扩展函数:我们可以扩展类的更多的特性,甚至没有权限去访问这个类
二、基本语法
1、包名的定义
包名需要放在文件的开头部分。但是不需要匹配目录和包,源文件可以放在任意目录中。
package my.demo
import java.util.*
// ...
2、函数的定义
关键字(fun)+ 方法名,参数的声明(参数名 : 参数类型),返回值类型的声明跟在参数后面 (:返回值类型):
fun sum(a: Int, b: Int): Int {
return a + b
}
方便起见,我们也可以直接在方法后面直接加 = 表达式, 返回值的类型会自动推算出来:
fun sum(a: Int, b: Int) = a + b
当函数返回无意义值时,可以使用Unit类型(相当于Java中的void),也可以省略不写:
fun printSum(a: Int, b: Int): Unit {
println("sum of $a and $b is ${a + b}")
}
fun printSum(a: Int, b: Int) {
println("sum of $a and $b is ${a + b}")
}
3、局部变量(成员变量)的定义
使用val关键字声明一个常量(只读,不可修改),使用var关键字声明一个变量:
val a: Int = 1 // 显示指定常量的类型
val b = 2 // 自动推断类型为‘Int’
val c: Int // 声明一个不初始化的常量,必须显示指定类型
c = 3 // 赋值后,值不可再更改
// 变量的声明方式同常量,唯一不同的是赋值后,值可改变
var x = 5 // 自动推断类型为‘Int’
x += 1
4、注释
kotlin的注释同Java/JavaScript:
// This is an end-of-line comment
/* This is a block comment
on multiple lines. */
5、字符串模板的使用
模板表达式以美元符( )开头,由一个简单的名字构成( a) 或者 用花括号括起来的任意表达式(${s1.replace(“is”, “was”)})
var a = 1
// simple name in template:
val s1 = "a is $a"
a = 2
// arbitrary expression in template:
val s2 = "${s1.replace("is", "was")}, but now is $a"
// a was 1, but now is 2
原生字符串和转义字符串内部都支持模板。如果你需要在原生字符串中表示字面值 $ 字符(它不支持反斜杠转义),你可以用下列语法:
val price = """
${'$'}9.99
"""
// 求值结果为$9.99
6、条件表达式的使用
常规的条件表达式:
fun maxOf(a: Int, b: Int): Int {
if (a > b) {
return