草庐IT

kotlin.notimplementederror

全部标签

Kotlin 一劳永逸实现 TAG

1TAG经典写法        对于Android开发,当我们需要在类中打印Log时,通常在Java中会这么定义一个TAG:privatestaticfinalStringTAG="TestClass";    或者不具体指定名字:privatestaticfinalStringTAG=TestClass.class.getSimpleName();那么,在Kotlin中        我们通常会这样定义:privatevalTAG=TestClass::class.java.simpleName        或者采用类似于Java的静态方式实现:companionobject{privat

【Kotlin】集合操作总结 ( List 集合 | MutableList 集合 | List 集合遍历 | Set 集合 | MutableSet 集合 | Map 集合 | 可变 Map集合 )

文章目录一、List创建与元素获取二、安全获取集合元素1、getOrElse函数2、getOrNull函数三、List创建与元素获取代码示例四、MutableList可变列表集合五、修改MutableList集合的mutator函数1、添加元素运算符+=和删除元素运算符-=2、通过Lambda表达式筛选要删除的元素六、List集合遍历七、List通过解构一次性给多个元素赋值八、Set集合九、可变Set集合十、List与Set之间相互转换十一、数组类型十二、Map集合十三、获取Map值十四、Map遍历十五、可变Map集合一、List创建与元素获取Kotlin中的集合分为两类,只读集合和可变集合;

2023年月9TIOBE 指数头条:Kotlin 重新进入 TIOBE 指数前 20 名。多家权威机构____编程语言排行榜__薪酬状况

2023年9月多家权威机构____编程语言排行榜__薪酬状况本文目录:一、TIOBE统计数据(2023年9月)(1)2023年9月的编程语言流行度指数排行(2)编程语言多年流行回顾(年度编程语言)二、2023年6月开发者调查统计结果——最流行的技术(2023.6)三、人工智能开发人员工作流程、看法、工具统计数据(2023.6)四、PYPL编程语言流行指数(2023年9月)(1)PYPLIndex(2)10TOPIDE(3)10TOPODE(4)10TOPDB六、DevJobsScanner开发人员就业市场统计数据(2022年6月)5.1Javascript Typescript工作需求占比5.

Kotlin-Coroutines 中的async与await

Coroutines官网说明什么是协程?(摘自官网)Asynchronousornon-blockingprogrammingisanimportantpartofthedevelopmentlandscape.用于异步或非阻塞编程。简单概括:同步的方式去编写异步执行的代码协程依赖于线程协程挂起时不需要阻塞线程,几乎是无代价的.一个线程中可以创建N个协程协程的创建/启动runBlocking启动一个新的协程并阻塞调用它的线程launch:Job启动一个协程但不会阻塞调用线程(CoroutineScope作用域内调用)async:Deferred启动一个协程但不会阻塞调用线程(Coroutine

一文快速入门 Kotlin 协程

在今年的三月份,我因为需要为项目搭建一个新的网络请求框架开始接触Kotlin协程。那时我司项目中同时存在着两种网络请求方式,采用的技术栈各不相同,Java、Kotlin、RxJava、LiveData各种混搭,技术栈的不统一长远来看肯定是会造成很多不便的,所以就打算封装一个新的网络请求框架来作为项目的统一规范(前面的人估计也是这么想的,所以就造成了同个项目中的网络请求方式越来越多??),那么就需要考虑采用什么技术栈来实现了采用Kotlin语言来实现必不可少,都这年头了还用Java也说不过去。Retrofit也必不可少,而目前Retrofit也已经支持Kotlin协程了,Google官方推出的J

如何在 Kotlin 中创建单例类?

Singleton是一个全局对象,可以从应用程序的任何地方访问。本文展示了在Kotlin中创建它的不同方法。在Kotlin中,您可以使用对象声明来实现单例。但是,如果你不知道这个对象关键字,你可能会做这样的事情。常规单例classSingletonprivateconstructor(){companionobject{@Volatileprivatelateinitvarinstance:SingletonfungetInstance():Singleton{synchronized(this){if(!::instance.isInitialized){instance=Singleton

kotlin<第十一篇>:Channel-通道

(1)基本用法Channel实际上是一个并发安全的队列,它可以用来连接协程,实现不同协程的通信。生产者/消费者模式(send-channel-receive)Channel的基本用法如下:runBlocking{valchannel=Channel()//生产者valproducer=GlobalScope.launch{vari=0while(true){delay(1000)channel.send(++i)println("send$i")}}//消费者valconsumer=GlobalScope.launch{while(true){valelement=channel.receiv

kotlin<第九篇>:协程的异常处理

一、组合上下文中的元素CoroutineContext是一组用于定义协程行为的元素。它由如下几项组成:1、Job:控制协程的生命周期2、CoroutineDispatcher:向合适的线程分发任务3、CoroutineName:协程的名称4、CoroutineExceptionHandler:处理被捕获的异常可以使用+运算符组合上下文:launch(Dispatchers.Default+CoroutineName("test")){}二、协程上下文的继承对于新建的协程,它的CoroutineContext会包含一个全新的Job实例,它会帮助我们控制协程生命周期。而剩下的元素会从Corouti

kotlin高级特性

Kotlin语法的高级特性异常强大,代码异常简洁,如果你在项目中能熟练使用各种kotlin高级特性后,你会发现,你之前这些年写的代码都是在浪费生命。标准函数kotlin的标准函数,指的是Standard.kt文件中定义的函数,包括let、also、with、run、apply函数。let函数let扩展函数的实际上是一个作用域函数,当你需要去定义一个变量在一个特定的作用域范围内,let函数的是一个不错的选择;let函数另一个作用就是可以避免写一些判断null的操作。适用场景场景一:最常用的场景就是使用let函数处理需要针对一个可null的对象统一做判空处理。//没有let函数,需要每次判空,代码