草庐IT

kotlin-multiplatform

全部标签

Kotlin之find

find属于Kotlin的高阶函数find:查找符合条件的并返回第一个符合该条件的数据,若没有符合条件的则返回null。它跟filter的区别就是,filter返回的是结果集合,而find是找到第一个就返回。findLast:查找符合条件的并返回最后一个符合该条件的数据。vallistOf=listOf("a","b","c")valfind:String?=listOf.find{it=="a"}//找到"a"就返回了当前的String类型的"a"valfindLast:String?=listOf.findLast{it=="a"}

Kotlin:使用对象VS类范围

我有一些数据类,这很短,因此我将它们分组在一起。我可以按原样在kotlin文件中定义它们,但希望它是类/对象中的范围,因此该文件不仅是文件,而且是在类/对象下进行的,用于更好地分组我可以objectModel{dataclassResult(valquery:Query)dataclassQuery(valsearchinfo:SearchInfo)dataclassSearchInfo(valtotalhits:Int)}我也可以做classModel{dataclassResult(valquery:Query)dataclassQuery(valsearchinfo:SearchInfo

VsCode配置Kotlin运行环境

目录需求前置条件步骤问题一二结果需求设备上有一个AndroidStudio但是太大了,于是就想着用VSCode配置一个轻量级的,而且VSCode里面好多插件我用着也比较舒服.前置条件JavaJDK1.8或者11 别的版本没试过有基于AndroidStudio的Kotlinc的环境步骤在VSCode中下载CodeRunner和KotlinLanguage两个插件在环境变量path中添加AndroidStudio中的Kotlinc/bin的路径问题一 Win+Rcmd打开命令行输入kotlinc-version检查 这种就是正常了如果不是那90%的可能是JavaJDK配置或者版本有问题二如果输出面

kotlin学习日志二

listOf()表示一个不可变的集合,比如vallist=listOf("java","kotlin"),只能读取,不能添加,修改或者删除操作mutableListOf()表示一个可变的集合表示mapOf()跟mutableMapOf()与前面的同理,例如创建map集合的方式valmap=mapOf("map"to1,"map1"to2),表示往map集合里面添加key为map,value为1的键值对遍历map的方式为image.pngLambda表达式的语法结构{参数名1:参数类型,参数名2:参数类型->函数体}image.png->表示参数类型的结束已经函数体的开始,函数体中可以编写任意代

Kotlin的5种单例模式

前言最近在学习Kotlin这门语言,在项目开发中,运用到了单例模式。因为其表达方式与Java是不同的。所以对不同单例模式的实现进行了分别探讨。主要单例模式实现如下:饿汉式懒汉式线程安全的懒汉式双重校验锁式静态内部类式PS:该篇文章不讨论单例模式的运用场景与各种模式下的单例模式的优缺点。只讨论在Java下不同单例模式下的对应Kotlin实现。一、饿汉式实现//Java实现publicclassSingletonDemo{privatestaticSingletonDemoinstance=newSingletonDemo();privateSingletonDemo(){}publicstati

android 自定义车牌键盘(kotlin)

android自定义车牌键盘(kotlin)前言示例图实现需求定义键盘文件核心代码视频效果汉字转化项目链接前言平时停车缴费都要填车牌号码,就想着自己能不能也做个车牌键盘demo。自定义车牌键盘能满足(普通车牌,新能源,警车,军车,领事馆车,教练车以及特种车辆等车牌)示例图实现需求1、车牌前两位默认是:粤A2、第一个控件,默认是省份键盘3、剩下控件,默认是abc键盘4、当前输入框输完后能自动跳转到下个控件5、当前输入框有选中背景,其他的没有定义键盘文件在res文件夹下创建xml文件夹,创建省份键盘(province.xml)和abc键盘(abc.xml)province.xmlKeyboardx

IDEA创建kotlin项目

今天新建了一个kotlin项目,竟然不能导入jar包,原因是新建项目的时候,选择了kotlin作为Gradle的开发语音,kotlin语音里面,下面这行配置识别不了:implementationfileTree(dir:'libs',include:['*.jar'])所以,细节还是很重要啊!IDEA需不需要下载kotlin插件?可以确认的是,在IDEA2017.3.4版本就默认支持kotlin,不需要下载kotlin插件。kotlin这门语言推出多久了?kotlin是有JetBrains由2011年7月推出,2012年2月根据Apache2许可将kotlin开源,2016年2月15日正式推出

IDEA创建kotlin项目

今天新建了一个kotlin项目,竟然不能导入jar包,原因是新建项目的时候,选择了kotlin作为Gradle的开发语音,kotlin语音里面,下面这行配置识别不了:implementationfileTree(dir:'libs',include:['*.jar'])所以,细节还是很重要啊!IDEA需不需要下载kotlin插件?可以确认的是,在IDEA2017.3.4版本就默认支持kotlin,不需要下载kotlin插件。kotlin这门语言推出多久了?kotlin是有JetBrains由2011年7月推出,2012年2月根据Apache2许可将kotlin开源,2016年2月15日正式推出

开源 | 携程机票跨端 Kotlin DSL 数据库框架 SQLlin

作者简介禹昂,携程机票移动端资深工程师,专注于Kotlin移动端跨平台领域,Kotlin中文社区核心成员,图书《Kotlin编程实践》译者。一、背景2022年9月Kotlin1.7.20发布之后,KotlinMultiplatformMobile(简称KMM)进入Beta阶段,Kotlin/Nativenewmemorymanagement也变更为默认启用状态。无论从多端统一性还是性能上来看,KotlinMultiplatform都进入了下一个里程碑阶段。携程机票移动端团队在2021年介绍过KMM技术在机票产线的落地情况(参考链接1),2022年年中开源了团队首个KMM项目——MMKV-Kot

Android(Kotlin)获取应用全局上下文 ApplicationContext

需求Android(Kotlin)获取应用全局上下文ApplicationContext。有些场景下需要使用的Context,是和页面无关的,仅和应用进程相关,比如:读写文件或访问数据库。这些场景下,我们希望可以在项目内任意位置,直接获取应用全局上下文(ApplicationContext);而不是在Activity、Fragment 或Service等组件里获取到Context,再作为参数到处传递。解决方案Application类,是和应用进程相关的,每个应用进程只有一个Application实例。Application中可获取ApplicationContext,此Context和页面等组