和 Java 一样,当需要引包时,包的声明需要写在源文件顶部
import java.util.*
//...
当我们创建一个 Kotlin 的 .kt 文件,可以直接在里面写 main() 方法,Kotlin 的 main() 方法:
fun main(args: Array<String>) {
}
接下来我们可以创建一个 sum() 方法:
fun main(args: Array<String>) {
//在 main() 方法中调用 sum() 方法
println("a+b+"+sum(1,2))
}
//方法中有两个参数,Int 型的 a 和 Int 型的 b,该方法也是 Int 型的,所以要返回一个 Int 型的值
fun sum(a:Int,b:Int):Int{
return a+b;
}
结果如下:
变量定义:
//变量定义 val 定义的变量是不可变的,相当于 Java 中的 final,而 var 是可变的
val a:Int = 1 //直接给定类型并赋值
val b=2 //直接赋值,自动推断出为 Int 类型
val c:Int = 0 //全局变量必须初始化
var e:Int = 0
fun init(){
val d:Int //局部变量可以不用初始化
d = 5 //后面在赋值
c=5 //报错提示 val cannot be reassigned 表示 val 的变量不能再被指定
e=6
}
如果对于全局变量 不初始化会报错:
字符串操作:
fun main(args: Array<String>) {
var a = 1
//$ 相当于 Java 和 C 中的 d%、f% 等,而这里的 $ 不需要区分,直接在后面加上变量即可
var s1 = "a is $a"
a = 2
//${}会先运行 {} 中的结果
val s2 = "${s1.replace("is","was")},but now is $a"
println(s1)
println(s2)
}
结果:
条件表达式:
fun main(args: Array<String>) {
//条件表达式,两种写法能达到一样的结果
var a = 5
var b = 6
if (a>b){
println("yes")
}else{
println("no")
}
val str = if (a>b) "yes" else "no"
println(str)
}
结果:
for 循环:
fun main(args: Array<String>) {
//使用 for 循环
var list = listOf("a","b","c")
//该 li 为 list 中的各个值
for (li in list){
println(li)
}
//该 index 为 list 的下标
for (index in list.indices){
println(list[index])
}
}
结果:
while 循环:
fun main(args: Array<String>) {
//使用 while 循环
var list = listOf("a","b","c")
var index = 0
while (index < list.size){
println(list[index])
index++
}
}
结果:
使用 when 表达式(取代了 switch-case 语法),一定要有 else 分支:
fun main(args: Array<String>) {
//使用 when 表达式
var a:Int = 1
println(test(1))
println(test(2))
println(test(3))
println(test(4))
}
fun test(a:Int):String=
when(a){
1 -> "One"
2 -> "Two"
3 -> "Three"
else -> {
"No such number"
}
}
结果:
使用区间表达式:
fun main(args: Array<String>) {
val x = 10
val y = 9
//使用 if 和 in 判断 x 是不是在 1 到 y+1 之间,两边边界皆可取
if (x in 1..y+1){
println("yes")
}
//使用 for 和 in 进行 1 到 3 的循环
for (x in 1..3){
print(x)
print(" ")
}
println()
//使用集合和 for 和 in 来进行集合遍历
val list = listOf("a","b","c")
for (li in list){
print(li+" ")
}
println()
//使用 in 判断集合是否包含某实例
when{
"a" in list -> println("a yes")
"e" in list -> println("e yes")
}
}
结果: