Kotlin基础知识
1.定义变量和常量
变量var
var n:Int = 30
var ok:Int
var abc = 124
var s = “abc”
常量val
val m:Int = 124
位置不同:在Kotlin中数据类型放到变量后面,并用:分割
变量用var 常量用val
Kotlin内置类型首字母都是大写的
Kotlin可以根据右侧初始化的值自动推导数据类型,初始化可以不写数据类型
2.定义函数
函数头,主要包括函数名和标识函数的关键字
参数,包括参数名和参数类型
返回值,包括返回值的类型,如果没有返回值
有返回值
fun add(m:Int,n:Int):Int{
return m + n
}
无返回值
fun process(m:Int):Unit{
println(m)
}
无返回值
fun process(m:Int){
println(m)
}
3.注释
和Java区别是多行注释可以嵌套
4.数据类型
数据类型 占用字节数
Double 8
Float 4
Long 8
Int 4
Short 2
Byte 1
不能像Java一样自动转换
要用toByte toShort toInt等方法
表示Long,数值后面加l或L,123L
表示Float,数值后面加f或F,123.3F
目前Kotlin只支持十六进制和二进制
十六进制用0x开头,0x1E
二进制:数值用0b开头,0b10011
下划线_分隔符把数值分开
val oneMillion = 1_000_000
5.字符类型
Char表示
如果c和97比较必须c.toInt之后才可以比较
6.布尔类型
Boolean
7.数组
arrayOf可以存储任何值的数组
val arr = arrayOf(1,2,3,’a’,”adsa”,true)
超过范围就会索引越界和Java一样
arrayOfNulls直接定义一个长度为10的整型数组
val arr1 = arrayOfNulls<Int>(10)
没初始化默认为null,因为是对象
使用Array类构造数组长度和初始化数据方法
var arr3 = Array(10,{i -> (i*i).toString()})
intArrayOf、shortArrayOf等
var arr4: IntArray = intArrayOf(10,20,30)
8.字符串
普通字符串和Java一样
保留原始格式的字符串(raw string)
var s1 = """
hello
world
时间
“”“
字符串模版(占位符)
val i = 10
val s2 = "i = $i"
9.包(Package)
Java 包与目录有关
Test.java
package a.b;
Kotlin 与当前目录无关
他可以给包取别名
import baidu.com.MyClass as my
10.条件语句when
类似Java的switch
x = 1
when(x){
1->{
println(“1—-“)
}
2->{
println("2-----")
}
else{
println("其他")
}
}
如果是对应的多个值
var y = 1
when(y){
1,2,3,4,5->{
println("以下符合条件")
}
10->{
println("以下不符合条件")
}
else{
println("其他")
}
}
when作为表达式使用
var xyz = 1
var m = when(xyz){
1->{
println("xyz==1")
20
}
2->{
println("xyz==2")
40
}
else{
100
}
}
使用in关键字
var n = 20
when(n){
in 1..15->print("满足条件")
in 16..20->println(“不满足条件”)
!in 100..200->println("hello world")
else->println("条件未知")
}
分支条件是一个函数
fun double(x:Int):Int{
return x * x
}
var ok = 9
when(ok){
double(2)->println("不满足条件")
double(3)->println("满足条件")
else->println("条件未知")
}
11.循环语句中的for
var arr = intArrayOf(1,2,3,4,5)
for(item: Int in arr){
println(item)
}
for(i in arr.indices){
println("arr[$i] = " + arr[i])
}
for((index, value) in arr.withIndex()){
println("arr[$index] = " + value)
}
12.循环语句while
var i = 0
while(i++ < 10){
println(i)
}
do{
if(i==8){
continue
}
println(i)
if(i == 6){
break
}
}while(--i > 0)