kotlin
kotlin学习
饭小粒
蓝牙&Android&iOS&EN
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
在Kotlin中创建ByteArray
从常量十六进制创建字节数组是否有更好/更短的方式比下面的版本?byteArrayOf(0xA1.toByte(), 0x2E.toByte(), 0x38.toByte(), 0xD4.toByte(), 0x89.toByte(), 0xC3.toByte())我试图把0xA1放在没有.toByte()但是我收到语法错误的抱怨,说整数文字不符合预期的类型字节.放整数很好,但我更喜欢十六进制形式,因为我的源是十六进制字符串.任何提示将不胜感激.谢谢!作为选项,您可以创建简单的功..转载 2021-06-01 15:35:00 · 8966 阅读 · 0 评论 -
Thread的setDaemon(true)方法的作用
定义:守护线程--也称“服务线程”,在没有用户线程可服务时会自动离开。优先级:守护线程的优先级比较低,用于为系统中的其它对象和线程提供服务。设置:通过setDaemon(true)来设置线程为“守护线程”;将一个用户线程设置为守护线程的方式是在线程对象创建之前用线程对象的setDaemon方法。example:垃圾回收线程就是一个经典的守护线程,当我们的程序中不再有任何运行的Thread,程序就不会再产生垃圾,垃圾回收器也就无事可做,所以当垃圾回收线程是JVM上仅剩的线程时,垃圾回收线程...转载 2020-11-24 11:38:35 · 330 阅读 · 0 评论 -
Kotlin-Map和flatMap
map:遍历每一个元素flatMap:遍历每一个元素,并铺平元素var list =listOf(listOf(10,20),listOf(30,40),listOf(50,60))var mapList = list.map{element->element.toString()}var flatMapList = list.flatMap{element->element.asIterable()}flatMap中的函数一定要返回一个Iterable,不然报错结果:转载 2020-11-16 11:41:30 · 2976 阅读 · 1 评论 -
使用 Kotlin 中的 takeIf
简评:在 Kotlin 的标准函数中有个takeIf函数,你是否了解这个函数呢?其是否只是漂亮点的if语句呢?先来看一个 takeIf 的例子,理论上你可以把代码中的所有 if 替换成 takeIf(虽然不推荐)。// Original Codeif (status) { doThis() }// Modified CodetakeIf { status }?.apply { doThis() }和其他的所有函数一样,takeIf 也有自己合适的使用场景。为了更好的理解,先看看...转载 2020-11-13 16:07:42 · 4489 阅读 · 0 评论 -
Kotlin学习系列——标准函数(with、let、run、apply、also)
kotlin标准函数总结写在最前1.with:println("====================学习with====================")/** * 特点: * 1.传入参数为this,可以直接调用this的属性和函数 * 2.返回值可以是任意类型 * 缺点: * 1.不支持非null校验 * 2.不支持链式调用 */val userInfo = with(User("崔兴旺", 28)) { println("$name,$age")//可转载 2020-11-12 11:49:27 · 275 阅读 · 0 评论 -
kotlin list集合api扩展操作
Java 中已经提供了很强大的集合框架,提供了常用的集合类型,比如 List、Set、Map 等。而 Kotlin 同样提供了一些集合,相比 Java 而言相对简单操作起来更加流畅。本文介绍 Kotlin 中的常见集合类型和适用于集合的操作函数。Kotlin 中集合 API 请点击这里:https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/index.html下面是 Kotlin 中定义的一些常用的集合接口和类: I转载 2020-11-09 14:51:29 · 865 阅读 · 0 评论 -
Kotlin系列之let、with、run、apply、also函数的使用
目录:一、回调函数的Kotin的lambda的简化 二、内联扩展函数之let 三、内联函数之with 四、内联扩展函数之run 五、内联扩展函数之apply 六、内联扩展函数之also 七、let,with,run,apply,also函数区别简述:相比Java, Kotlin提供了不少高级语法特性。对于一个Kotlin的初学者来说经常会写出一些不够优雅的代码。在Kotlin中的源码标准库(Standard.kt)中提供了一些Kotlin扩展的内置函数可以优化kotlin的编码。Sta转载 2020-11-06 16:37:54 · 206 阅读 · 0 评论 -
Android官方蓝牙帮助
https://developer.android.com/guide/topics/connectivity/bluetooth.html?hl=zh-cn#TheBasics原创 2020-11-06 11:01:24 · 293 阅读 · 0 评论 -
Kotlin 读取文件
Kotlin 读取文件教程显示了如何在 Kotlin 中读取文件。 我们展示了几种在 Kotlin 中读取文件的方法。在本教程中,我们使用File方法读取文件。本教程提供了五个示例,这些示例在 Kotlin 中读取文件。thermopylae.txtThe Battle of Thermopylae was fought between an alliance of Greek city-states, led by King Leonidas of Sparta, and the Pe转载 2020-11-05 16:59:47 · 5601 阅读 · 0 评论 -
Kotlin内置函数之 let 、also、apply、run、with
Kotlin内置函数之 let 、also、apply、run、with前言 内联函数之with 使用姿势 应用场景 内联扩展函数之 let 和 also 使用姿势 应用场景 内联扩展函数之apply和 run 使用姿势 使用场景 let,with,run,apply,also函数区别 尾巴前言在Kotlin中的源码标准库(Standard.kt)中提供了一些Kotlin扩展的内置函数可以优化kotlin的编码。Standard.kt是Ko.转载 2020-11-02 17:14:14 · 340 阅读 · 0 评论 -
Kotlin协程的使用
目录引入kotlin协程kotlin协程的三种启动方式初识协程:第一种启动方式(runBlocking:T)第二种启动方式(launch:Job)第三种启动方式(async/await:Deferred)实现你的第一个Coroutine程序浅析Kotlin协程 ——协程是什么?https://blog.youkuaiyun.com/qq_17798399/article/details/95234416引入kotlin协程在Android module中的build.gradle转载 2020-11-02 17:07:38 · 596 阅读 · 0 评论 -
Kotlin高阶扩展函数:理解let、with、run、apply、also函数
前言为了方便开发者更加友好的代码编写,kotlin提供了高阶扩展函数let,with,run,apply。在理解之前,需要我们理解扩展函数与高阶函数的概念。扩展函数Kotlin 能够扩展一个类的新功能而无需继承该类或者使用像装饰者这样的设计模式。 这通过叫做扩展的特殊声明完成。如我们想为String类型扩展一个打印方法,直接定义一个扩展函数即可,无需通过集成的方式去扩展。 fun String.println() { println(this.toString()...转载 2020-10-08 18:16:41 · 621 阅读 · 0 评论 -
Kotlin的数组array和集合list的简单使用以及注意事项
学习到Kotlin的数组和集合,这里做个记录。数组ArrayKotlin中数组也是个容器,提供了不同的类型有:ByteArray, CharArray, ShortArray, IntArray, LongArray, BooleanArray, FloatArray,DoubleArray,一大堆,这里不一一介绍,用法都差不多,只是带类型的数组只能装指定类型。初始化 //初始化一个空的数组,实际上它是大小为0继承arrayOfNulls的数组 var ar转载 2020-10-07 16:20:16 · 7590 阅读 · 1 评论 -
用Kotlin的Anko库优雅开发Android应用--Anko库详细教程
前言最近Kotlin的呼声又是日益高涨,前几天9012年Google IO正式将Kotlin从first _class提升为kotlin_first。我也是接触了一段时间的Kotlin,给我的感觉就是简约,快速。无需繁琐的findId,高阶函数的应用,再加上Kotlin的null 安全,更是将代码的崩溃率降到更低。今天我们就来介绍一下今天的主角—Anko1.AnkoAnko是JetBrains开发的一个强大的库,说起JetBrains ,那就牛逼了,Kotlin语言是他们开发的,最流行的的开转载 2020-09-21 19:57:48 · 6336 阅读 · 0 评论 -
Kotlin(五)掌握基础知识:协程(kotlinx.coroutines)详解
Kotlin(一)掌握基础知识:数据、集合、库函数Kotlin(二)掌握基础知识:字符串和异常处理Kotlin(三)掌握基础知识:类Kotlin(四)掌握基础知识:线程(Thread.kt)详解协程是轻量级的线程,他降低了线程创建,线程切换,线程初始化的性能消耗;协程具有以下几个特点不是被操作系统内核所管理,而完全是由程序所控制; 协程在线程中是顺序运行的,协程的异步和并发操作是通过协程的挂起方法来执行的,协程挂起时不会阻塞线程;这点不同于线程,线程一旦挂起,该线程就会被阻塞; 协程运行在线程转载 2020-09-21 19:50:03 · 3417 阅读 · 0 评论 -
协程基础
协程基础这一部分包括基础的协程概念。第一个协程程序运行以下代码:import kotlinx.coroutines.*fun main() { GlobalScope.launch { // 在后台启动一个新的协程并继续 delay(1000L) // 非阻塞的等待 1 秒钟(默认时间单位是毫秒) println("World!") // 在延迟后打印输出 } println("Hel..转载 2020-09-21 19:32:26 · 335 阅读 · 0 评论 -
Java 空指针异常的若干解决方案
Java 中任何对象都有可能为空,当我们调用空对象的方法时就会抛出NullPointerException空指针异常,这是一种非常常见的错误类型。我们可以使用若干种方法来避免产生这类异常,使得我们的代码更为健壮。本文将列举这些解决方案,包括传统的空值检测、编程规范、以及使用现代 Java 语言引入的各类工具来作为辅助。运行时检测最显而易见的方法就是使用if (obj == null)来对所有需要用到的对象来进行检测,包括函数参数、返回值、以及类实例的成员变量。当你检测到null值时,可以...转载 2020-09-21 10:16:17 · 1647 阅读 · 0 评论 -
kotlin注解处理器插件kapt的使用
kapt是kotlin的注解处理器,用法很简单在 Kotlin 中则需要添加 kotlin-kapt 插件激活 kapt,并使用 kapt 替换 annotationProcessor:配置 在app build.gradle 中 激活apply plugin: 'kotlin-kapt'使用 dependencies { ... kapt "com.google.dagger:dagger-compiler:$dagger-version" .转载 2020-09-19 15:57:11 · 2286 阅读 · 0 评论 -
带有 View 的 Android Room —— Kotlin
本文翻译自Android Room with a View - Kotlincodelab,较长。目录1.介绍推荐的 Architecture Components(架构组件)是什么?你将构建什么RoomWordSample架构概览你将学到什么你需要什么2.创建你的 app3.更新 gradle 文件4. 创建实体5. 创建DAO什么是DAO实现DAO6.LiveData 类7.添加 Room 数据库什么是 Room 数据...转载 2020-09-18 16:16:54 · 340 阅读 · 0 评论 -
Kotlin的数据类,枚举类,单例类
简述Kotlin相对与Java,它给我们提供了很多的语法糖,供我们方便使用,提高我们的开发效率;数据类Java中的常用的Bean类,每一个变量我们都需要写getter,setter方法,却都要手动实现很多方法;尽管可以用工具帮我们完成,但是代码显得很臃肿,不灵活。特别是当我们需改其中某一个成员的时候,就得去一堆代码里面寻找对应的修改。public class JavaDemoBean { private String param1; private String par转载 2020-09-17 19:23:20 · 327 阅读 · 0 评论 -
Kotlin 数据类
功能 自动声明与构造函数入参同名的属性字段 自动实现每个属性字段的get/set方法 自动提供equals方法,比较两个数据对象是否相等 自动提供copy方法,允许完整复制某个数据对象 提供toString方法 约束条件 数据类必须有主构造函数,且至少一个输入参数 声明与输入参数同名的属性,即输入参数前面添加关键字val或者var 数据类不能是基类也不能是子类,不能是抽象类,不能是内部类,不能是密封类 实例data .转载 2020-09-17 19:07:13 · 188 阅读 · 0 评论 -
Android 配置kotlin单元测试
最近开始学习Kotlin,将之前的一个验证证书的题目里全部改成用Kotlin来写,其中有使用到单元测试,故在这里对Kotlin进行单元测试的配置进行记录。首先build.gradle里添加单元测试依赖:apply plugin: 'kotlin-android'android { sourceSets { //这里主要是添加存放kotlin的测试文件夹,不然我们在test里创建kotlin文件夹是没什么效果的 test.java.srcDirs += 'src/转载 2020-09-16 16:13:04 · 941 阅读 · 0 评论 -
kotlin和java混合开发总结
声明:本文是作者AWeiLoveAndroid原创,版权归作者AWeiLoveAndroid所有,侵权必究。如若转发,请注明作者和来源地址!未经授权,严禁私自转载!我本来是不想学习kotlin的,但是现在的形势,很多公司都在使用kotlin开发,可以说学会kotlin也是无奈之举,既然是潮流,谷歌也在大力推广,所以还是只能硬着头皮逼迫自己学一下,也能更快适应公司的需要。正所谓:“识时务者为俊杰”,改变不了公司的发展,那就改变自己。本文首发在 慕课网,转载请注明原文链接和作者信息。废话少说,直接上正题转载 2020-09-15 15:48:51 · 1922 阅读 · 0 评论 -
@JvmStatic 和 @JvmField 在kotlin中的使用
这是关于 Java 静态方法和静态变量的一段代码:public class TestStatic { private int otherField = 0; public static final BigInteger BIG_INTEGER = BigInteger.ONE; public static void method() { System.out.println("call method"); } } 我们把它转换成 K...转载 2020-09-15 15:22:06 · 701 阅读 · 0 评论 -
Kotlin精髓
前言从谨慎地在项目中引入kotlin到全部转为kotlin开发我们用了大概半年的时间。这中间经历了从在一个小功能中尝试使用到完全使用kotlin完成了大版本开发的过程。使用方法也从仅仅地用java风格写kotlin代码,慢慢地变成使用kotlin风格去编写代码。 转载请注明来源「申国骏」到目前为止,kotlin的引入至少没有给我们带来不必要的麻烦,在慢慢品尝kotlin语法糖的过程中,我们领略到了能给开发者真正带来好处的一些特性。本文就是对这些我们认为是精髓的一些特性的进行总结,希望能给还在犹...转载 2020-09-15 14:42:04 · 255 阅读 · 0 评论 -
Kotlin几个很有用的关键字
1.object 用于创建单例模式object Resource { val name = "Rocker"}2.lazy 、lateinit 用于延迟初始化,第一次使用时再实例化val name: String by lazy { "Rocker"}lateinit var name:String;fun testName(){ name = "Rocker"}两者区别:by lazy 修饰val的变量lateinit 修饰var的变量..转载 2020-09-15 14:39:17 · 169 阅读 · 0 评论 -
Kotlinkotlin二进制与十六进制之间的转化
JAVA Code: public class HexUtils { /** * 十六进制String转换成Byte[] * @param hexString the hex string * @return byte[] */ public static byte[] hexStringToBytes(String hexString) { if (hexString == null || hexString.equals("")) { ret..转载 2020-09-11 20:18:43 · 3585 阅读 · 0 评论 -
Kotlin中let,apply,with,run区别
let首先let()的定义是这样的,默认当前这个对象作为闭包的it参数,返回值是函数里面最后一行,或者指定return代码示例:applyapply函数是这样的,调用某对象的apply函数,在函数范围内,可以任意调用该对象的任意方法,并返回该对象代码示例:withwith函数是一个单独的函数,并不是Kotlin中的extension,所以调用方式有点不一样,返回是最后一行,然后可以直接调用对象的方法,感觉像是let和apply的结合。代码示例:...转载 2020-09-07 15:23:39 · 1183 阅读 · 0 评论
分享