包定义与导入包
1 kotlin.*
2 kotlin.annotation.* 注解类
3 kotlin.collections.* 集合操作的类,有list、set、map
4 kotlin.comparisons.* 元素比较的包
5 kotlin.io.*
6 kotlin.ranges.* 区间表达包
7 kotlin.sequences.* 序列的包,元素非常多的情况下速度更快
8 kotlin.text.* 文本和正则表达式的包
入口程序
Kotlin程序的入口是main函数
fun main(){
println("Hello world!")
}
main的另一种形式接受可变数量的String参数
fun main(args: Array<String>){
println(args.contentToString())
}
"<>"里是泛型,是你能传进去参数的类型
args是变量名,它是一个字符串数组
printlin里是数组类的一个方法
输出到控制台
print将其参数打到标准输出
fun main(){
//不换行输出
print("Hello ")
print("world!")
//换行输出
println("Hello world!")
println(42)
}
函数
定义函数的语法
fun 函数名([参数:类型])[:返回类型]{
//函数体
}
举例
fun sum(a: Int, b: Int) : Int {
return a+b
}
表达式作为函数体,返回类型自动推断
fun sum(a: Int, b: Int) = a + b
//public方法则必须明确写出返回类型
public fun sum(a: Int, b: Int): Int = a + b
返回无意义的值的函数
fun printSum(a: Int,b: Int): Unit{
println("sum of a and b is ${a + b}")}
变量
定义只读局部变量使用关键字val定义。只能为其赋值一次。
val a: Int = 1 //立即赋值
val b = 2 //自动推断出"Int"类型
val c: Int //如果没有初始值,类型不能省略
c=3 //明确赋值
println("a = a, b = b, c = $c")
可重新赋值的变量使用var关键字
var x = 5 //自动推断出"Int"类型
x += 1
可在函数外部声明变量,是全局变量
val PI = 3.14
var x = 0
fun main(){
println("x = x ; PI = PI")
}
Kotlin中的数字没有隐式拓宽转换
fun main(){
val i = 1 //int
val d = 1.0 //double
val f = 1.0f //float
printDouble(d)
printDouble(i) //错误:类型不匹配
printDouble(f) //错误:类型不匹配
}
fun printDouble(d:Double) { print(d) }
可以用下划线分割数字,使得更易于读取
val oneMillion = 1_000_000

trimMargin()去掉分节符"|"

数组
用Array类创建数组


控制流程
条件语句





循环语句






流程控制语句



