仅个人自学过程的笔记...
一、区间
1.1区间的声明
kotlin可以使用 .. 或 until来声明区间
val range: IntRange = 0..1024 //闭区间[0,1024],包括1024
val rangeExclusive: IntRange = 0 until 1024 //半开区间[0,1024),不包括1024
val rangeDown: IntRange = 1024 downTo 0 //倒序,从1024到0,包含1024和0
val emptyRange: IntRange = 0..-1
1.2区间的类型
IntRange,LongRange,CharRange
二、数组
2.1字符串数组
var aArray = Array<String>(numRows){""} //字符串数组
2.2二维数组定义
val array2d = Array(3, {Array(3){it -> 0}})
var dp = Array(3){BooleanArray(3)} //boolean二维数组
var zArray = Array(3){CharArray(3)} //字符二位数组
三、字符串
3.1单个字符
1)可使用索引运算[]访问包含的单个字符
val str = "Aimee Chen"
println(str[1])
3.2substring
val name = "Jimmy"
val str:String = name.substring(0 until 2)
四、类型转换
4.1整型转字符串
val x = 0
val str = x.toString()
4.2字符串转整型
val str = "12"
val x = str.toInt()
五、StringBuffer
var buffer = StringBuffer()
六、by lazy
6.1特点
● 引用不可变,即只能是val,不可以是var
● 被首次调用时,才会进行赋值操作,一旦被赋值,后续将不能更改
● 默认是线程安全的
七、inline关键字
编译器会将带有inline函数体中的代码平铺到调用处,这样就避免了一次函数调用
八、Flow
1.callbackFlow:将回调方法改造成flow ,类似suspendCoroutine
2.flattenMerge:并发合流
九、疑问点
1.awaitClose
2.trySend