kotlin 笔记

219 阅读1分钟

仅个人自学过程的笔记...

一、区间

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区间的类型

IntRangeLongRangeCharRange

二、数组

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

十、参考

  1. Kotlin - 区间与数组
  2. Kotlin 创建二维数组、三维数组
  3. 两万六千字带你 Kotlin 入门
  4. lateinit与by lazy{ }
  5. Android性能优化 | 把构建布局用时缩短 20 倍(下)
  6. 【Kotlin Flow】 一眼看全——Flow操作符大全