git config --global user.name "xxx"git config --global user.email "xxx"配置全局默认的用户信息git c...
git config --global user.name "xxx"git config --global user.email "xxx"配置全局默认的用户信息git c...
在上篇文章OkHttp源码之CacheInterceptor中,我们介绍了okhttp是如何使用缓存的,但没有涉及到缓存具体是如何保存到磁盘的,又是以何种形式保存的。今天我们...
变量 定义 dynamic和Object的区别dynamic:变量在运行时确定实际类型Object:变量在编译时确定实际类型,效率优于dynamic 默认值 Dart 中一切...
构建器 runBlocking 顶层函数非挂起函数返回T,Lambda表达值最后一行 阻塞当前线程,会等待所有其中包含的协程执行完毕 launch CoroutineScop...
1.Kotlin Flow 介绍 Flow是kotlin提供的一个工具,使用协程封装成生产者-消费者模式,上流来负责生产,下流来接收消耗。 翻译下就是:按顺序发出值并正常完成...
什么是作用域函数 当对一个对象调用某个函数并提供一个 lambda 表达式时,它会形成一个临时作用域。在此作用域中,可以访问该对象而无需其名称。这些函数称为作用域函数。 作用...
组件化的优点 编译速度:可以按需测试单一模块,因为每一个模块都可以当做一个application。 超级解耦:极度的降低了模块之前的耦合,便于后期维护。 功能重用:某一块的功...
目录 1.介绍 2.为什么要用ConstraintLayout 3.如何使用ConstraintLayout3.1 添加依赖3.2 相对定位3.3 角度定位3.4 边距3.5...
六大原则 单一职责原则 就一个类而言,应该仅有一个引起它变化的原因。 开放封闭原则 类、模板、函数等应该可以拓展,但是不可修改。 里氏替换原则 所有引用基类(父类)的地方必须...