kotlin语言是ide开发公司JetBrains 出品的一个基于jvm的静态类型编程语言,2017年5月17日在旧金山召开的I/O开发者大会上,谷歌宣布Kotlin语言同java和C++一样成为Android的官方语言。
安装
macOS操作系统可以使用homebrew安装1
2brew update
brew install kotlinhello world
创建test.kt文件,写入代码1
2
3fun main(args: Array<String>){
println("hello world!")
}编译
1
kotlinc test.kt -include-runtime -d hello.jar
kotlinc 为编译指令,test.kt 要编译的文件, -include-runtime 表示包含kotlin运行时需要的库, -d 指定编译后的文件输出路径
执行1
kotlin hello.jar
如果环境配置正确就可以正常输出”hello world!”啦,记一下我配置kotlin环境时遇到的坑,在kotlinc编译时报错,提示:
1
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/jetbrains/kotlin/preloading/Preloader : Unsupported major.minor version 52.0
通过搜索得知,这应该是jdk版本不对应导致的,kotlinc在这里使用的是jdk 1.8 ,而我之前写java代码时,安装的jdk版本是1.7,安装jdk 1.8,设置java环境变量为jdk1.8的路径就可以正常编译了
变量声明
1
2
3
4
5
6
7
8
9
10fun main(args: Array<String>){
// 可变变量 var <标识符> : <类型> = <初始化值>
// 不可变变量val <标识符> : <类型> = <初始化值>
val a: Int = 10
var b: Int = 20
// a = 20 err :val修饰的变量不能修改
b = 15
println(a)
println(b)
}函数定义
函数定义关键子为fun 参数定义使用 形参名: 类型1
2
3
4
5
6fun sum(a: Int, b: Int): Int{
return a + b
}
fun main(args: Array<String>){
println(sum(3, 5))
}可变长参数
可变长形参关键字vararg1
2
3
4
5
6
7
8
9
10fun sum(vararg arg: Int): Int{
var result: Int = 0
for (v in arg){
result += v
}
return result
}
fun main(args: Array<String>){
println(sum(1,2,3,4,5,6))
}lambda(匿名函数)
1
2
3
4fun main(args: Array<String>){
val suml_lambda: (Int, Int) -> Int = {x,y -> x+y}
println(suml_lambda(2,3))
}字符串模版
$ 表示一个变量名或者变量值
$varName 表示变量值
${varName.fun()} 表示变量的方法返回值1
2
3
4
5
6
7
8
9
10fun main(arg: Array<String>) {
var a = 1
// 模板中的简单名称:
val s1 = "a 的旧值是 $a"
a = 2
// 模板中的任意表达式:
val s2 = "${s1.replace("is", "was")}, 现在修改后的值是 $a"
println(s2)
}