草庐IT

聊聊 mutableStateOf

前言像我们之前更新View的方式都是通过setText()这种形式进行的,随着声明式UICompose浪潮的袭来,我们有了其他的选择。声明式UI通俗的讲就是数据改变,UI就会随之刷新,而无需我们拿到变化的数据之后再进行UI更新。使用我们先来看一段很简单的代码:code-1valname=mutableStateOf("hellocompose")setContent{Text(name.value)}lifecycleScope.launch{delay(3000)name.value="android"}这是一个对mutableStateOf最简单的使用。效果很简单,就是延时对文字部分进行了

kotlin协程异常处理之-CoroutineExceptionHandler

转载请标明出处:https://www.cnblogs.com/tangZH/p/17307406.htmlkotlin协程小记协程的async使用kotlin协程异常处理之-trycatchkotlin协程异常处理之-CoroutineExceptionHandlerCoroutineExceptionHandler用于在协程中捕获异常。一、CoroutineExceptionHandler只能处理当前域内开启的子协程或者当前协程抛出的异常GlobalScope.launch(CoroutineExceptionHandler{_,throwable->Log.d("MainActivity

kotlin协程异常处理之-try catch

kotlin协程小记协程的async使用kotlin协程异常处理之-trycatchkotlin协程异常处理之-CoroutineExceptionHandler一、trycatchtrycatch是否一定有效呢?未必,来看一下:1、withContextimportkotlinx.coroutines.*funmain()=runBlocking{launch{println("launchstart")try{withContext(Dispatchers.IO){//可能抛出异常}}catch(ex:Exception){println("withContextcaught:${ex.m

【程序设计】null与optional

文章目录nullJava/C#的nullC/C++的NULL和nullptrPython的NoneJavaScript的null和undefinedSQL的nullOptionalJava的Optional支持C#的Optional支持Swift的Optional支持Kotlin的Optional支持null编程语言支持null的方式可能有所不同,但通常都会提供一个特殊的null值,表示一个变量或对象不引用任何内容。Java/C#的null由于Java和C#过于相似,所以把它们放在一起讨论。Java和C#都提供了对空指针抛出异常的处理,不会容忍C/C++那样的非法空指针访问。Java使用nul

Kotlin新手教程一(Kotlin简介及环境搭建)

目录一、什么是Kotlin?二、为什么要使用Kotlin?三、使用IntelliJIDEA搭建Kotlin四、Kotlin使用命令行编译一、什么是Kotlin?Kotlin是一种在Java虚拟机上运行的静态类型编程语言,它也可以被编译成为JavaScript源代码(方便在没有JVM的设备上运行)。它主要是由俄罗斯圣彼得堡的JetBrains开发团队所发展出来的编程语言,其名称来自于圣彼得堡附近的科特林岛。二、为什么要使用Kotlin?完全兼容Java(很多Java程序员上手也就更加容易)Nullsafe支持lambda表达式(虽然Java8也有,但是Kotlin的lambda表达式会更好)支持

如何从呼叫者Kotlin中指定的lambda中解散对话fragment

我正在从下面的片段中运行girlQualitiesChoedialog:girlType.setOnClickListener{GirlQualitiesChoiceDialog.show(activity,InitialDataSet.instance.QUALITY_TYPE_COLOR){Picasso.with(context).load(it.resId).into(colorTypeImageasImageView)//GirlQualitiesChoiceDialog.this.dismiss()-needtodismissthecreateddialog}}指定听众的位置。加载

Kotlin反射访问androidx.collection.LruCache类私有变量

Kotlin反射访问androidx.collection.LruCache类私有变量androidx.collection.LruCache类中定义了一个名为map的LinkedHashMap,map存储了所有LruCache的数据,有时候需要遍历访问该LinkedHashMap,取出里面的值,但是LruCache代码实现中,map为private私有,且无get方法返回,所以需要通过反射访问。 比如:importjava.lang.reflect.Fieldfunmain(){valmyLruCache=make()vallruCache=myLruCacheasLruCachelruCa

【采坑记录】kotlin compiler embeddable 下载超级慢

今天碰到一个奇怪的问题:在家里用自己的电脑更新下公司的项目,突然发现重新构建工程时一直在跑下载kotlincompilerembeddable的task,期间打了两把王者农药还没跑完就离谱,于是尝试了如下方案。尝试方案1:gradle配置阿里云仓库当时我是这样想的:kotlincompilerembeddable这玩意估计要🪜否则下载慢,因此尝试在gradle中添加了国内的阿里云仓库,奈何等了一会还是不行~后来看了下gradle下载kotlincompilerembeddable时版本是1.7.10而阿里云上最高1.4。应该是无法从阿里云仓库找到目标版本继而继续从maven中下载嘞。尝试方案2

kotlin flow 定时任务

要在Kotlin的Flow中定时广播数据,可以使用Kotlin的协程库中的delay函数和while循环结合使用。以下是一个简单的示例代码,每秒钟向Flow发送一个数字:kotlinCopycodeimportkotlinx.coroutines.delayimportkotlinx.coroutines.flow.Flowimportkotlinx.coroutines.flow.flowfuntimerFlow():Flow=flow{vari=0while(true){emit(i)delay(1000)//延迟1秒i++}}该代码定义了一个名为timerFlow的函数,该函数返回一个F

kotlin扩展函数

一.概念Kotlin的扩展函数是一种特殊的函数,允许在不修改原始类定义的情况下向现有类添加新的函数。扩展函数可以像普通函数一样使用,并且可以在任何地方调用。定义一个扩展函数,可以使用以下语法:funClassName.functionName(parameters...){//Functionbody}其中ClassName是要扩展的类的名称,functionName是要添加的函数的名称,parameters是该函数的参数列表。在函数体内,可以像访问类的成员一样访问该类的属性和方法。二.示例1.string示例例如,假设您要向String类添加一个名为reverse的函数,该函数将字符串反转并