
kotlin
文章平均质量分 68
kotlin学习实践总结
天花板之恋
在coding的路上
展开
-
kotlin实现registerForActivityResult方式的界面跳转
在最新的Android SDK中,startActivityForResult已经被标记为过时的方法,转而使用registerForActivityResult的方式。1.为什么要使用registerForActivityResult的方式?以前使用startActivityForResult的方式,需要传递一个requestCode,在目的界面返回本界面的时候,再通过requestCode去识别是哪个请求的返回值,这样显得有些简陋和粗暴。而使用registerForActivityResult的方式原创 2022-02-18 09:42:08 · 5121 阅读 · 0 评论 -
Kotlin函数和对象
扩展函数在语法上看起来就像是类的原生方法一样,但实际上是在类的外部定义,因此,它不能访问类的私有或受保护的成员,同时也不能在类的内部调用。拓展函数可以搭配高阶函数一起使用,组成拓展高阶函数。当函数被标记为inline时,表示这是一个内联函数,编译器会尝试在调用该函数的地方直接插入函数的实现代码,而不是生成调用函数的代码,从而消除函数调用的开销。在kotlin中函数也是有类型的,跟整型、字符串类型是同样的性质,函数类型就是将函数的“输入参数类型”和“返回值类型”的抽象表达,如(Int,Int)-> Int。原创 2024-02-19 20:30:00 · 801 阅读 · 0 评论 -
kotlin协程学习总结
既然协程挂起可以实现切线程,那肯定就不会阻塞当前的线程了。至于为什么叫非阻塞式挂起,是因为在实现协程代码的时候,是使用了看似阻塞式的书写方式,但是又实现了非阻塞式的效果。main {val user = suspendingRequestUser() // 耗时操作。原创 2024-02-19 17:52:28 · 560 阅读 · 0 评论 -
对于软件架构的思考
MVVM全称是Model View ViewModel,Model即数据模型,View指的是Activity或者Fragment,和MVP架构中的数据层、界面层意义是一样的。这里新增的ViewModel,是用来代替Presenter,和底层业务逻辑交互,并持有数据,内部通过LiveData去关联界面View和数据Model。原创 2024-01-15 13:11:11 · 486 阅读 · 0 评论 -
kotlin实现单例模式
类加载的时机,或者说类的初始化(两者是类加载到内存中达到可用状态的两个阶段),包括:创建类的实例对象,或者类的静态成员访问,类的反射,父类中的子类初始化的时候,虚拟机特定类。所以并不是程序初始化的时候就会加载所有的类,声明一个类型的变量时也不会加载该类,而是真的使用该类的时候才会去加载。通过伴生对象实现类似于static的静态变量,同时通过by lazy,实现了属性委托,延迟初始化,即在使用instance属性字段的时候,才会去初始化。同时,由于by lazy是线程安全的,也就实现了多线程的校验功能。原创 2023-10-31 13:27:06 · 1909 阅读 · 0 评论 -
kotlin实践笔记
我们可以自定义访问器,如果定义了setter,那么每次给属性赋值时都会调用它。also和let的用法一致,只是返回的时候,also是返回最后一行表达式结果,而also是返回的it执行后的变量。Kotlin 提供by lazy的方式实现懒加载委托,也就是在data第一次使用的时候才开始加载。let是一个域作用函数,定义一个变量在一个特定的作用域范围内,避免写一些重复判空的操作。run是结合了let和with的用法,而apply则是结合了also和with的用法。by lazy的方式,只用于val定义的属性。原创 2022-09-19 15:46:32 · 632 阅读 · 0 评论