Kotlin 基本语法
前言
本文是根据(《Kotlin极简教程》作者:陈光剑)总结摘录而来。
测试环境
因为是在Android studio中测试软件,总不能把app跑起来测试。
Android studio 中也可以run Main方法。(当然你可以用直接单元测试)
测试java 代码可以直接用
public static void main(String[] args) {
System.out.print("hello world");
}
注意
测试kotlin 这样直接写会报错在Android studio 中还需要配置Android环境 在gradle 中需要添加
apply plugin: 'kotlin-android-extensions'
在测试如下代码就可以了。
fun main(args: Array<String>) {
println("hello kotlin")
}
包
kotlin中的包的概念和java中是一样的,用来区分不同的类。所以在不同包中使用类对象、成员需要导包。(它也有public private 这类修饰词)
01声明变量和值
kotlin变量分为:
var(可变):它的生命周期中可以被多次赋值;
val(不可变):它的生命周期只能赋值一次,相当于java中被final修饰符修饰的变量。
变量类型推断
kotlin 可以自动推断赋值类型
var a=1
var b="hello"
var c=true
我们可以明确指出类型
val a:Int =10
val b:Long =100
//int类型不会强转,需要下面这样写
val b=a.toLong
可以用is操作符判断进行类型检测
val a=0
print(a is Int)
字符串模板
var a=""" hello
world """
print(a)
结果:
hello
world
表达式以$开始
val a=""" hello
world """
val b="$a has ${a.length} characters"
println(b)
结果:
hello
world has 20 characters
02流程控制语句
- 分支语句(if、when)
- 循环语句(for、while)
- 跳转语句(break、continue、return、throw)
If
if作为表达式
它没有?:三元运算符可以用if代替
var a=77
var b=11
val max =if(a>b) a else b
if分支式代码块
它的最后一行是其返回值。
var a=77
var b=11
var c=if (true){
println("444")
b=2
}else {
a
b
}
print(c)
结果:true
444
kotlin.Unit
结果:false
11
if-else规则
- if后面的括号不能省略,括号里的值必须是布尔类型(同java)
- 如果条件只有一条语句,if的花括号可以省略(同java)
when
fun testWhen(obj: Any) {
val array= arrayOf(4,5,6)
when (obj) {
//多个同一分支条件用逗号隔开
1,2,3-> println(1)
"hello" -> println("hello world")
//in操作符可以判断区间
in array-> println("在array中")
//in操作符可以判断范围
in 1..200-> println("在1-200之内")
//可以用任意表达式作为分支条件
parseInt(obj.toString())-> println("可以用表达式做分支条件")
is Long -> println(obj)
!is Long -> println("bushilong")
//else相当于default
else -> println("default")
}
}
for
for (item in collection){
println(item)
}
for (i in array){
println(i)
}
//可以直接遍历,也可以通过索引遍历
fun testFor() {
val arrayOf = arrayOf("h", "e", "l", "l", "o")
for (i in arrayOf) {
print(i)
}
for (i in arrayOf.indices) {
println(arrayOf[i])
}
}
while
同java
break和continue
break和cintinue都是用来控制循环结构的,主要是用来停止循环。
//break跳出for循环(终止循环)
for(i in 1..100){
if(i%2==0){
break
}
}
//continue跳出if,继续for循环 (跳出本轮循环)
for(i in 1..100){
if(i%2==0){
continue
}
}
return
在Kotlin中除了表达式的值,有返回值的函数都要求显式的使用return来返回其值。
(待完善)
标签@
(待完善)