一、build.gradle引入//CoroutineScope生命周期感知组件协程implementation'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0'implementation'androidx.lifecycle:lifecycle-runtime-ktx:2.4.0'implementation'androidx.lifecycle:lifecycle-livedata-ktx:2.4.0'二、ViewModelScope应用中的每一个ViewModel都定义了ViewModelScope。如果ViewModel已清除,则在此
Kotlin判断null比较let布尔值BooleanclassMyData{valcount:Int?=2023valnumber:Int?=null}funmain(args:Array){valdata=MyData()valyear=2022if(data.count!=null){if(data.count>year){println("data.count!=null")}}if(data.count!!>year){println("data.count!!")}varb1=data.count?.let{it>2022}?:falseprintln(b1)varb2=data.
Kotlin是一种现代化的静态类型编程语言,由JetBrains公司开发。它可以在Java虚拟机(JVM)上运行,并且可以与Java代码无缝地进行互操作。Kotlin旨在提供更简洁、更安全、更具表达力和更高效的编程语言。Kotlin主要运用Android开发:Kotlin被广泛用于Android应用程序的开发。它可以与Java代码互操作,提供了许多方便的功能和语法糖,使得开发更加简洁和高效。后端开发:Kotlin可以用于构建服务器端应用程序。它可以与Java框架(如Spring)无缝集成,并且提供了一些特性来简化后端开发,如空安全、扩展函数等。前端开发:Kotlin可以通过Kotlin/JS编
Kotlin中的密封类:kotlin中的密封类,用关键词Sealed修饰,且还有一个规定:Sealed类的子类应该是Sealed类的嵌套类,或者应该在与Sealed类相同的文件中声明。当我们想定义一个有相同父类,但是有不同子类的时候,我们可以用枚举,抽象类,密封类来表示。下面一一讲解它们之间的区别。1.枚举enumclassResult(valdata:String){SUCCESS("Success"),ERROR("Error")}但是如果我们ERROR中想定义一个Exception,那么枚举类是不允许的。enumclassResult(valmessage:String){SUCCESS
有多少种编程语言?不知道。那么中国人贡献了几种?好像一种也没有。这就奇怪了。为什么? 安卓APP的编程语言,本来是JAVA。某年开始鼓励大家使用Kotlin。这几天简单了解了一下:Kotlin编译结果跟JAVA一样。其实解释型语言也有自己独特的优势。很多写法更灵活,更简化。使用了lamba、扩展函数等一系列新语法。 新语言的特性,一开始总是会不适应。等用多了就会发现好处。 凡事有利有弊。是不是说这种语法就没有问题呢?也不对。过于隐藏细节,有时会让人糊涂。工作重点并不在于使用了什么语言,而在于基本功。 当然,如果是刚开始学习安卓编程,建议直接学习kotlin,因为官方要求了。
项目场景:vue3+ts+vite项目打包问题描述errorduringbuild:RollupError:"default"isnotexportedby"node_modules/vue/dist/vue.runtime.esm-bundler.js",importedby"node_modules/@kangc/v-md-editor/lib/codemirror-editor.js".aterror(file:///D:...原因分析:vite不支持commonjs语法,需要使用@rollup/plugin-commonjs插件,用于将CommonJS模块转换为ES6模块的Rollup
多线程的好处是不言而喻的,它能帮我们刚更多的事情,同时干不同的事情在程序设计中是经常出现的,这种时候我们使用的是线程。在Kotlin中,使用的还是原先java的那一套,用的还是Thread,可能是在java中Thread就挺好用的,Kotlin没有做太多的变化。线程Thread的使用Thread是一个类,有几种用法,比较常规的是声明一个类,继承Thread,重载run()的方法,后建立一个变量,使用start的方法启动线程。innerclassCountThread:Thread(){varpassc:Int=0overridefunrun(){super.run()while(true){T
Thismodulesdirectorywascreatedusingthefollowingregistriesconfiguration:{"default":"https://registry.npm.taobao.org/"}.Thecurrentconfigurationis{"default":"https://registry.npmjs.org/"}.Torecreatethemodulesdirectoryusingthenewsettings,run"pnpminstall".运行pnpm报错,原因:发布npm时候换了官方镜像。解决办法:修改回淘宝镜像:npmconfigs
这是一个Python程序的错误跟踪信息。其中,"Traceback(mostrecentcalllast):"显示了程序在执行过程中发生了错误。"File"D:\python项目\main.py",line10,in"指出了错误发生在哪个文件的第10行。"AttributeError:NoneTypeobjecthasnoattributetext"指出了错误类型和错误信息。错误信息表明在代码中,soup.find("div",class_="win_data")返回了一个NoneType对象,而这个对象没有text属性,所以程序抛出了一个错误。
看了下原因为没有装pytorch。(印象中是装了的不知道什么时候这台服务器没有了。。)解决方案:到pytorch官网上找到对应的cuda版本的pytorch安装即可PreviousPyTorchVersions|PyTorch比如我的是cuda10.2(使用nvcc-V命令查看)那么就是使用以下命令安装——condainstallpytorch==1.12.1torchvision==0.13.1torchaudio==0.12.1cudatoolkit=10.2-cpytorch