
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
这篇重点贴下 Kotlin Mvp 的代码,Kotlin 中 MVVM已经相当盛行了,但处理业务逻辑较多的场景中 Mvp 还是有需要的,废话不多说,直接上代码首先定义统一的IView 接口,定义 BaseView 中的行为,新建BaseView.kt 文件interface IView {fun showToast(msg: String)fun showLoading(color: Int =
C++ 的资源管理核心是 RAII,用类型表达所有权,用作用域控制生命周期,在保证安全的前提下通过移动语义减少性能开销。实际工程中,避免死锁主要依靠统一加锁顺序和 RAII;多锁场景使用;同时尽量缩小临界区,避免在持锁状态下做阻塞操作。排查 Linux 程序卡顿或崩溃,先确认资源瓶颈(CPU/IO/内存),再用topstraceperf等工具定位线程和函数热点,遇到崩溃生成core dump 并用
WidgetWidget 是 Flutter 世界里对视图的一种结构化描述,你可以把它看作是前端中的“控件”或“组件”。Widget 是控件实现的基本逻辑单位,里面存储的是有关视图渲染的配置信息,包括布局、渲染属性、事件响应信息等。实际上,Flutter 种真正代表屏幕上显示元素的类时Element,Widget 只是描述 Element 的配置数据,并且一个Widget 可以对应多个El...
mapval list = listOf(1, 2, 3, 4)val map = list.map {it * 2}源码:定义了 map 的扩展函数 mapTo ,mapTo 接受两个参数,第一个参数类型是集合,第二个参数为一个方法 (transform: (T) -> R) ,最终返回一个集合,mapTo中将transform...
Kotlin中可空类型常见的几种空判断?.安全的调用,当一个值存在时,才会执行它的下一步操作?:Elvis操作符,或者合并运算符!!.非空断言,用来保证某个变量不为空,除此之外还有 !is as? 等原理:Kotlin 在方法参数上标注@Nullable,在实现上,采用if..else来对可空情况进行判断,对比Java8的Optional,兼容性、性能更好,开销更...
Flow 库是在 Kotlin Coroutines 1.3.2 发布之后新增的库,也叫做异步流,类似 RxJava 的 Observable、Flowable 等等,所以很多人都用 Flow 与 RxJava 做对比。而Flow 则比 RxJava 简单很多。我们知道 MVVM 中 LiveData 是一个生命周期感知组件,最好在 View 和 ViewModel 层中使用它,如果在 Repos
RenderObject 是主要负责实现视图渲染的对象。每个 Element都对应一个RenderObject。Flutter 通过控件树(Widget 树)中的每个控件(Widget)创建不同类型的渲染对象,组成渲染对象树。而渲染对象树在 Flutter 的展示过程分为四个阶段,即布局、绘制、合成和渲染。 其中,布局和绘制在 RenderObject 中完成。abstract cla...
Kotlin 中设计模式有很多种写法,各有个的好处,这里不是统一工厂模式interface Computer {val cpu: String//增加Factory名字companion object Factory {operator fun invoke(type: ComputerType): Computer {...
val和varvar代表了varible变量,val是varible+final,当然val引用不可变。两者都可以声明一个类的属性。尽可能的采用val、不可变对象及纯函数来设计程序。高阶函数以其他函数作为参数或返回值的函数可以理解为高阶函数。//定义国家类型data class Country(val name: String,val continient:...
这篇重点贴下 Kotlin Mvp 的代码,Kotlin 中 MVVM已经相当盛行了,但处理业务逻辑较多的场景中 Mvp 还是有需要的,废话不多说,直接上代码首先定义统一的IView 接口,定义 BaseView 中的行为,新建BaseView.kt 文件interface IView {fun showToast(msg: String)fun showLoading(color: Int =







