![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kotlin
文章平均质量分 68
写bug的蚊子
我只是搬运工,存存笔记而已
展开
-
kotlin_基础_使用object还是companion object来封装kotlin工具类
Kotlin封装工具类用object还是用companion object呢?转载自: https://www.jianshu.com/p/901807984b63问题:很多时候我们要封装自己的工具类,在使用Java的时候很自然的就写出如下的代码: public class Utils { public static void doSomething() { // doSomething } } // 调用转载 2022-01-17 14:52:07 · 370 阅读 · 0 评论 -
android_基础_验证码倒计时实现
//倒计时实现 object : CountDownTimer(5 * 1000L, 1000) { override fun onFinish() { binding.inclLoginVerificationCode.llLoginUpdateTime.visibility = View.GONE原创 2021-12-20 22:05:00 · 1232 阅读 · 0 评论 -
kotlin_基础_下划线(_)的作用
转载自: https://blog.csdn.net/IO_Field/article/details/73015152kotlin中的下划线提起下划线字符(_),最熟悉的莫过于命名名称时,使用下划线作为一个单词的分隔符,比如,btn_login。但,在Kotlin中,却赋予下滑线神奇的魔法,先不说下划线的作用。这里有一个这样的想法:在某些情况下,我们所声明的函数中,比如lambda表达式或者解构声明中的所以参数,并不是所有的参数都可以用到。我们总是想着将用不到的不作声明,那么就需要一种方法来省略这.转载 2021-12-19 15:49:44 · 989 阅读 · 0 评论 -
kotlin_协程_概念
转载自: https://www.jianshu.com/p/b8a3a42eea4ckotlin协程概念一、Kotlin 协程概念Kotlin 协程提供了一种全新处理并发的方式,你可以在 Android 平台上使用它来简化异步执行的代码。协程从 Kotlin 1.3 版本开始引入,但这一概念在编程世界诞生的黎明之际就有了,最早使用协程的编程语言可以追溯到 1967 年的 Simula 语言。在过去几年间,协程这个概念发展势头迅猛,现已经被诸多主流编程语言采用,比如 Javascript、C#、P.转载 2021-12-19 09:20:31 · 893 阅读 · 0 评论 -
kotlin_基础_泛型中的in和out
转载自: https://blog.csdn.net/u013488580/article/details/88849541kotlin泛型中的in和out当我们在 Kotlin 中定义泛型时,我们会发现它需要使用到 in 和 out 两个关键字来定义。从形式上来讲,这是一种定义「逆变」和「协变」的方式。那啥叫逆变?啥叫协变?可以参考下维基百科的定义:协变与逆变in & out 怎么记?out(协变)如果泛型类只将泛型类型作为函数的返回(输出),那么使用 out:interface.转载 2021-12-18 14:46:01 · 341 阅读 · 0 评论 -
android_error_kotlin版本升级引起的编译失败
原文:https://blog.csdn.net/weixin_49770443/article/details/118516720?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Ed.转载 2021-12-12 21:15:29 · 673 阅读 · 0 评论 -
kotlin_基础_枚举和密封类(sealed class)
转载自:https://blog.csdn.net/deng_hui_long/article/details/108173544写这篇文章之前,做了很多调研,查阅了很多资料,文章也反复推敲打磨了很多遍,为什么我要去做这么多的调研工作,因为 Sealed Classes 概念很简单,但是想要写好它很难,由于目前我对 Sealed Classes 的理解也有限,所以做了很多工作。希望这篇文章的内容不会让小伙伴们失望,如果你对 Sealed Classes 有独到的理解,也欢迎在评论区和大家一起分享。在.转载 2021-11-20 14:12:39 · 787 阅读 · 0 评论 -
kotlin_基础_inline
转载自: https://www.jianshu.com/p/c63c29f3b72a简单理解 Kotlin 中的 inline 关键字参考:Demystifying the inline keywordKotlin Basics: Inline FunctionsKotlin inline 关键字的使用inline 这个词其实很好理解,翻译成中文就指内联。相信每一个学习 Kotlin 的同学都有用过或者遇见过 inline 这个关键字。即便没有在 Kotlin 中见过那也不是什么问题.转载 2021-11-20 13:57:51 · 451 阅读 · 0 评论 -
kotlin_基础_接口及Android抽取通用代码减少代码量
kotlin的接口与java的接口相比较而言有了一部分改动:在kotlin中interface不仅可以声明函数,还可以对函数进行实现.与类唯一不同的是它们是无状态的,所以属性需要子类去重写.类需要去负责保存接口属性的状态.接口的作用:可以被用来从类中提取出相似行为的通用代码例如:所有的Activity中基本都有ToolBar,我们可以把所有Activity共享Toolbar的代码存放在一个接口中.这样就会减少代码量,在使用的时候把toolbar布局添加到不同activity的xml布局中,之后创转载 2021-11-19 15:49:49 · 197 阅读 · 0 评论 -
kotlin_基础_list
原文: https://blog.csdn.net/alfredkao/article/details/106791769?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blo.转载 2021-11-19 14:40:10 · 154 阅读 · 0 评论 -
kotlin_基础_泛型详解(包括in、out等)
原文: https://www.jianshu.com/p/671184ce18fcKotlin 中也有泛型的概念,和 Java 中的类似,但又不尽相同,一起来认识 Kotlin 中的泛型吧。一、基本使用通常我们会在类、接口、方法中声明泛型:1、泛型类class Animal<T> {}2、泛型接口interface IAnimal<T> {}3、泛型方法fun <T> initAnimal(param: T) {}二、泛型约束泛型约束表示.转载 2021-11-19 14:03:30 · 976 阅读 · 0 评论 -
kotlin_协程_ViewModelScope、LifcycleScope、lanchWhenStart
目录0x0001 概述 0x0002 添加组件的协程依赖 0x0003 不同组件的内置协程作用域 0x0004 挂起特定生命周期状态下的协程 0x0005 LiveData 组件与 Kotlin 协程组合使用0x0001 概述Kotlin 协程提供了 API 以供开发者写出简单的异步代码。在 Kotlin 协程中,可以定义 CoroutineScope 作用域,它可以帮助开发者何时运行协程,每一个异步操作运行在特定的作用域内。本主题说明如何协程如何与系统组件一起有效使用。0x0002 添加组件的协转载 2021-11-16 12:59:07 · 1063 阅读 · 0 评论 -
kotlin_协程_Flow
Kotlin Coroutines Flow 系列(一) Flow 基本使用转载自: https://www.jianshu.com/p/fe1293e8f15c一. Kotlin Flow 介绍Flow 库是在 Kotlin Coroutines 1.3.2 发布之后新增的库。官方文档给予了一句话简单的介绍:Flow — cold asynchronous stream with flow builder and comprehensive operator set (filter, ma转载 2021-11-01 17:55:07 · 280 阅读 · 0 评论 -
kotlin_基础_A to B(pair)语法和infix函数
转载自:https://blog.csdn.net/baidu_39589150/article/details/110521319目录1. infix函数2. A to B语法1. infix函数先来温习一下A to B语法的用法: fun main(){ val map = mapOf("Apple" to 1, "Banana" to 2, "Orange" to 3, "Pear" to 4, "Grape" to 5) for ((fruit, .转载 2021-10-14 11:10:58 · 585 阅读 · 0 评论 -
kotlin_基础_密封类(sealed)
原文链接:https://blog.csdn.net/weixin_41953808/article/details/112499887Kotlin密封类:sealed密封类:用来定义受限的类继承结构。在when表达式中处理所有可能的子类,我们必须提供一个else分支来处理没有任何其他分支能匹配的情况:interface Exprclass Num(val value:Int):Exprclass Sum(val left:Expr,val right:Expr):Exprfun eva.转载 2021-10-06 16:47:36 · 2605 阅读 · 2 评论 -
kotlin_基础_kotlin版函数式实现接口回掉
class OnClickListener(val clickListener: (marsProperty:MarsProperty) -> Unit) { fun onClick(marsProperty:MarsProperty) = clickListener(marsProperty) } class PhotoGridAdapter( private val onClickListener: OnClickListener ) : ListA.原创 2021-10-01 15:00:59 · 131 阅读 · 0 评论 -
kotlin_基础_lambda表达式
转载自: https://blog.csdn.net/zhongyili_sohu/article/details/105240947(1)匿名函数和普通函数没什么区别,只是没有名字而已(2)如果是单表达式的函数体,可以用赋值运算符代替大括号,而且可以省略返回值类型,编译器可以推断出是否有返回值,如果有类型是什么类型。这个其实和匿名函数没关系,普通函数也通用(3)如果编译器可以推断出匿名函数的形参类型,可以将形参类型省略(4)匿名函数是可以作为函数参数的,在实际使用中函数参数的类型是lambda.转载 2021-09-30 10:34:22 · 168 阅读 · 0 评论 -
kotlin_基础_@JvmOverloads 注解(暴露多个重载方法)
原文:https://www.jianshu.com/p/72d1959a7c56Kotlin中@JvmOverloads 注解在Kotlin中@JvmOverloads注解的作用就是:在有默认参数值的方法中使用@JvmOverloads注解,则Kotlin就会暴露多个重载方法。可能还是云里雾里,直接上代码,代码解释一切:如果我们再kotlin中写如下代码: fun f(a: String, b: Int = 0, c: String="abc"){ ... }.转载 2021-09-12 20:39:49 · 2191 阅读 · 0 评论 -
kotlin_基础_数组集合
上篇:第三篇:Kotlin之流程控制下篇:第五篇:Kotlin之函数和Lambda表达式一.Kotlin数组kotlin为数组增加了一个Array类,为元素是基本类型的数组增加了xxArray类(其中xx也就是Byte,Short, Int等基本类型)Kotlin创建数组大致有如下两种方式:1.使用arrayOf(), arrayOfNulls(),emptyArray()工具函数。2.使用Array(size: Int, init:(Int) -> T)首先先介绍第一种Array转载 2021-07-08 16:08:35 · 318 阅读 · 0 评论 -
kotlin_协程_使用规范
原文在此,可能需要翻墙简介使用Kotlin coroutines时,这些东西你应该做和不应该做(或者说,至少试着避免做)。处理异常时,用coroutineScope或者使用SupervisorJob包装异步调用❌如果异步代码块可能抛出异常,不要依赖于用try/catch代码块包装 val job: Job = Job() val scope = CoroutineScope(Dispatchers.Default + job) // 可能抛出异常 fun doWork转载 2021-07-08 15:21:24 · 161 阅读 · 0 评论 -
kotlin_基础_可变参数
对比 Java 中的可变参数先看下 Java 的可变参数,用我们最熟悉的 main 函数 public static void main(String... args) { }很多人可能都觉得不对啊,参数应该是数组啊 public static void main(String[] args) { }其实上面两种写法是一样的,从 Java5 开始引入了可变参数(varargs)对应的 Kotlin 的代码,也是两种方式,参数为数组: fun main(args:转载 2021-07-08 08:12:50 · 1640 阅读 · 0 评论 -
kotlin_基础_并发
Kotlin中没有 synchronized 关键字Kotlin中没有 volatile 关键字Kotlin的Any类似于 Java 的 Object , 没有 wait() , notify() 和 notifyAll() 方法1, 创建线程 // 方法一 object : Thread() { override fun run() { println("running from Thread: ${Thread.currentThread()}")转载 2021-07-07 17:17:48 · 243 阅读 · 0 评论