Kotlin 基本语法
翻译:https://kotlinlang.org/docs/reference/basic-syntax.html#basic-syntax
定义包
包的定义和引用要放到文件头:
package my.demo
import java.util.*
//..
定义方法
2个Int作为参数的方法:
fun sum (a : Int, b : Int) : Int {
return a*b;
}
kotlin的方法可以根据表达式来自动识别出返回值的类型:
fun sum (a : Int, b : Int) = a + b;
不带返回值的方法:
fun printSum(a : Int, b : Int) : Unit {
print(a + b)
}
也可以写成下面的样子:
fun printSum(a : Int, b : Int) {
print(a + b)
}
定义变量
只读的变量(类似java中的final)
val a : Int = 1
val b = 1 //b会被自动识别成Int类型
val c : Int //如果变量没有初始值则必须指出类型
c = 1 //给变量c赋值
可以改变的变量
var x = 1
x += 1
使用字符串模板
fun main(args : Array) {
if (args.size == 0) return
print("First argument : ${args[0]}")
}
条件表达式
fun max(a : Int, b : Int) : Int {
if (a > b)
return a
else
return b
}
上述也可以表示为一个表达式
fun max(a : Int, b : Int) = if (a>b) a else b
表示可以为空的变量
kotlin支持静态检查控指针异常, 当一个变量可能为null的时候需要你在代码中指出
返回null如果str不是一个Int:
fun parseInt(str : String) : Int? {
//...
}
方法返回可以为null的值:
fun main(args : Arrays) {
if (args.size
类型检查和自动转型
‘is’ 可以用来做类型检查.如果一个变量已经做了类型检查,那么久不需要显示的做转型
fun getStringLength(obj : Any) : Int? {
if (obj is String) {
return obj.length
}
//如果obj不是字符串类型 返回null
return null
}
or
fun getStringLength(obj : Any) : Int? {
if (obj is String && obj.length > 0) {
return obj.length
}
return null
}
for循环
fun main(args : Arrays) {
for (arg in args)
print(arg)
}
or
for (i in args.indices)
print(args[i])
while循环
fun main(args : Arrays) {
var i = 0
while(i
when表达式
fun cases(obj : Any) {
when(obj) {
1 -> print("One")
"Hello" -> print("Greeting")
is Long -> print("Long")
!is String -> print("Not a string")
else -> print("Unknown")
}
}
范围
检查一个数字是否在一个范围内:
if (x in 1..y-1)
print("OK")
检查一个数字是否不再一个范围内
if (x !in 0..array.lastIndex)
print("Out")
遍历一个范围
for (x in 1..5)
print(x)
集合
遍历集合:
for (name in names)
print(name)
用 “in” 检查集合中是否包含某一个变量
if (text in names)
print("Yes")
使用lambda表达式去过滤和映射集合
names
.filter { it.startsWith("A") }
.sortedBy { it }
.map { it.toUpperCase() }
.forEach{ print(it) }
7898




被折叠的 条评论
为什么被折叠?



