目录

kotlin鲜为人知的高级操作

kotlin 解构

这个可是真的方便, 昨天刚学到的操作, 对于数据类 kotlin 提供了这种方便的赋值操作真的很舒服

https://cdn.jsdelivr.net/gh/zsqw123/cdn@master/picCDN/20210211164125.png

你还可以用于集合中: https://cdn.jsdelivr.net/gh/zsqw123/cdn@master/picCDN/20210211165526.png

kotlin 中缀扩展函数 infix

infix 只能作用与扩展函数上, 具体用法如下: https://cdn.jsdelivr.net/gh/zsqw123/cdn@master/picCDN/20210211172803.png

1
2
3
4
5
infix fun Person.changeSex(newSex: Boolean) {
        this.sex = newSex
}
    
person changeSex false

扩展函数的 this 会被充当为左边的变量, 扩展函数的参数将会被视为右边的变量, 调用时候直接作为中缀使用即可, 便会执行该扩展函数.

  • 有一说一, 中缀函数在有些情况下反而听影响阅读的, 要视具体情况而定.

最后叠个杀人书:(不是

1
2
3
4
5
internal tailrec suspend inline infix operator fun <reified T> T.plus(crossinline action: suspend (Int) -> Unit): Int {
    delay(100)
    action(1)
    return 1
} // 貌似是我研究出来最长的 kotlin 的 fun 前缀了

源码点我