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)
}
}
可变参数