kotlin精要
2023-03-17 10:02:51 9 举报
AI智能生成
《第一行代码》第三版 kt部分笔记
作者其他创作
大纲/内容
主构造
次构造
接口
继承
可见性
数据类型和单例类
密封类
应用
实化
协变
逆变
泛型
委托
面向对象
val maxLengthFruit = list.maxBy { it.length }
val list = listOf(\"Apple\
集合的函数式API
Java的函数式API
.let
Lambda
编程思想
字符串表达式
函数的参数默认值
infix构建更可读的语法
语法糖
DSL.kt
DSL
小魔术
const val
val
var
lateinit
list
set
map
集合
by lazy
变量
永远优先使用val来声明一个变量,而当val没有办法满足你的需求时再使用var这样设计出来的程序会更加健壮,也更加符合高质量的编码规范
if
when
for
逻辑控制
with
run
apply
repeat
标准函数
优雅解决Java中匿名内部类赋值的写法
使用object关键字创建单例类可以使用类名.方法的方式调用
如果只想要类中一个方法遵循这种方式就需要使用伴生类companion object来实现
这两种方式都是模仿了静态方法的语法,但不是真正的静态方法。如果需要使用真正的静态方法,使用@JvmStatic注解。这样在kt和java中就都可以使用静态方式调用了。
或者将方法定义为顶层方法也可以。
静态方法
.use
拓展函数
非内联函数只能使用return@方法名 来返回lambda表达式
内联函数由于本质是替换,可以用return关键字来返回外层函数
内联函数接收的lambda表达式也要求是内联的所以如果有传递参数的需求,可以使用noinline关键字将其中一个lambda表达式取消内联
noinline与crosinline
内联函数
高阶函数
可变参数
函数
?.
!!.
?:
空指针检查
运算符重载
运算符
org.jetbrains.kotlinx:kotlinx-coroutines-coreorg.jetbrains.kotlinx:kotlinx-coroutines-android
GlobalScope.launch
runBlocking
suspend
coroutineScope
Job()
管理协程
async
withContext
获取结果
suspendCoroutine
协程作用域
协程
kotlin精要
0 条评论
回复 删除
下一页