返回首页

kotlin 学习笔记 语法 1

记录学习 kotlin 知道的知识点

类初始化

class AppContainerImpl(private val applicationContext: Context) : AppContainer {
}

类似于

public class AppContainerImpl : AppContainer{
    private final Context applicationContext;
    public AppContainerImpl(Context applicationContext) {
        this.applicationContext = applicationContext;
    }
}

by lazy

    override val postsRepository: PostsRepository by lazy {
        FakePostsRepository()
    }

by lazy 第一次使用执行 {} 函数,返回值是对应的类型 PostsRepository

扩展函数

fun Uri.handleDeepLink(): List<NavKey>? {

给 Uri 增加一个函数

List 扩展函数

first {}

{} 函数返回 bool
满足 {} 的第一个元素,没有就报错

firstOrNull {}

没有就返回 null

firstNotNullOfOrNull {}

{} 函数返回 可空值 返回第一个 非空结果值 或 null

buildList

buildList {} 返回 List
{} 里面调用 add 函数,add 的参数是List元素

私有函数别名

private typealias TypeParser = (String) -> Serializable

Column {}

等价于 Column({})
是函数调用,如果最后一个参数是一个lamba,可以把lamba放在外面

vararg

fun printNames(vararg names: String) {
    for (name in names) {
        println(name)
    }
}

可变参数