
Kotlin知识总结
Kotlin学习
胡小牧
岁月推动着年华,伴随着流水的脚步走过春夏秋冬。回想一路走来磕磕绊绊,感谢前辈们的无私奉献,本文重在共享,欢迎大家转载,评论,收藏,点赞,谢谢,如果您对文章存在疑问,或者和您的文章类似,请私信,----------------期待是心痛的根源,心不动,则不痛。
展开
-
kotlin 项目中文件显示带.kt 结尾与不带.kt结尾
如果一个文件 只有一个类,其他的函数,接口 ,等都在这个类里面这种情况显示的效果是不带.kt结尾,与之相反的如果如果有其他的接口,类,或者整个文件只定义一些变量,这个这个类的外面显示效果带.kt结尾。首先说下,这个只是开发工具上的一个设计细节展示,无论显示效果是否带.kt 实际的文件都是带.kt结尾的,这个可以到文件的目录下查看文件。创建文件的时候选择Class 显示效果不带.kt ,选择file 显示效果带.kt 结尾 不过这个显示效果。总之这个只是编译器的一种显示效果,跟文件是否带.kt没有任何关系,原创 2024-01-26 16:09:22 · 602 阅读 · 0 评论 -
kotlin data clas 数据类
toString() 格式是 "User(name=John, age=42)"val 声明的参数类似java的final ,data clas 里面不会有 set方法。提供的一个内置工具,用于创建现有实例的一个副本,并允许你修改部分属性值。.componentN() 函数 按声明顺序对应于所有属性。主构造函数中的每个属性,Kotlin会根据构造函数的个数生成相应的。var 声明的参数data clas 里面有 set方法。.equals()/.hashCode() 对。.copy() 函数。原创 2024-01-26 15:34:53 · 1378 阅读 · 0 评论 -
kotlin sum 与 sumOf
对于numbers 集合的元素乘与2 之后再计算总和。更适合于需要根据元素进行某些计算后再求和的情况。对于一个集合中,取出其中的偶数,然后再计算总和。也是计算一个列表里面数字的总和,不过。原创 2024-01-25 00:16:43 · 1538 阅读 · 0 评论 -
kotlin Pair 和 Triple
是两种内建的数据类,用于表示固定数量的元素对和三元组。类似,但用于存储三个相关联的值。在 Kotlin 中,原创 2024-01-21 15:07:43 · 813 阅读 · 0 评论 -
kotlin flatten 与 flatMap
和flatMap在 Kotlin 中虽然都用于扁平化处理集合,但它们的用法和效果并不完全一样。原创 2024-01-21 15:02:21 · 787 阅读 · 0 评论 -
kotlin map 与 flatmap
kotlin map 与 flatmap 是2个不同的概念的map 是一种数据结构,flatmap 是一个高阶函数,处理集合用的。原创 2024-01-21 14:56:59 · 999 阅读 · 0 评论 -
kotlin $ (字符串模版)的使用
在kotlin 中当做字符串模版使用,作用就是在字符串里面识别自己定义的字符。这个时候编译就提示我们使用字符串模版的是个。这个里面$就是在字符串里面识别String。$ 的作用就是识别字符串里面的i。这样就可以自己命名出xxx.zip。字数有点少了,在写一个demo。使用的这个函数的时候。原创 2024-01-21 14:05:34 · 963 阅读 · 0 评论 -
kotlin as 和 is 的使用
kotlin 中有类型检测与类型转换章节,今天回顾看到这里记录下 详细的地址如下。原创 2024-01-21 13:49:36 · 1054 阅读 · 0 评论 -
kotlin substring/substringAfter/substringAfterLast/substringBefore/substringBeforeLast
与substringAfterLast相反,保留最后出现字符之前的内容。与substringAfter相反,保留首次出现字符之前的内容。截取掉首次出现之前的字符,就是保留首次出现指定字符后面的内容。截取掉最后出现之前的字符,就是保留最后出现指定字符后面的内容。原创 2024-01-09 19:49:02 · 1155 阅读 · 1 评论 -
kotlin map{}和maxOf{}
map 让集合中的每个元素应用给定的转换函数(transform),然后生成并返回一个新的 ListmaxOf 该函数的主要目的是在集合中找到应用 selector 函数后得到的最大值。打印结果:[2, 4, 6, 8, 10]maxOf {}的作用。原创 2024-01-09 19:27:46 · 797 阅读 · 0 评论 -
kotlin chunked 和 windowed
可以检索给定大小的集合元素中所有可能区间。将集合按照指定的数量分割成多个结合。原创 2024-01-07 16:59:01 · 996 阅读 · 0 评论 -
kotlin take 和 drop
与 takeLast() 类似:它从集合末尾获取与谓词匹配的元素区间。区间的首个元素是与谓词不匹配的最后一个元素右边的元素。如果最后一个集合元素与谓词匹配,则结果为空。与具有相同谓词的 takeLastWhile() 相反:它返回从开头到最后一个与谓词不匹配的元素。它将不停获取元素直到排除与谓词匹配的首个元素。如果首个集合元素与谓词匹配,则结果为空。与具有相同谓词的 takeWhile() 相反:它将首个与谓词不匹配的元素返回到末尾。从尾开始获取指定数量的元素。从尾去除给定数量的元素。原创 2024-01-07 16:48:28 · 895 阅读 · 0 评论 -
Kotlin slice 取集合的一部分
slice() 返回具有给定索引的集合元素列表。索引既可以是作为区间传入的也可以是作为整数值的集合传入的。kotlin slice 的作用。原创 2024-01-07 15:51:55 · 619 阅读 · 0 评论 -
kotlin first/last/indexOf/elementAt
Log.d("======first", numbers.first { it.length > 6 }) //报错 java.util.NoSuchElementException。Log.d("======first", numbers.elementAt(8)) //报错。elementAt 也有这种情况当给出的下标集合中不存在的时候也是会报错的比如。elementAtOrNull的作用判断条件符合返回元素,不符合返回null。参数映射为一个集合元素类型的实例。last 是取集合元素中最后一个元素。原创 2024-01-03 00:04:49 · 1105 阅读 · 0 评论 -
kotlin Elvis 运算符 ?:
用于返回非null的值,避免调用空的对象,它被称为“安全导航操作符”或“空值合并运算符”。当左侧表达式可能为 null 时,如果其非空,则返回该表达式的值;否则返回右侧的默认值。通过这个demo 可以看出如果str不为null 返回?:右侧的值,如果是null 返回左侧的值。kotlin Elvis 运算符?这个符号简化了kotlin的条件判断。例如 上面的demo 类似下面的判断。下面写一个demo具体说明下。定义一个data数据。原创 2024-01-02 22:58:26 · 488 阅读 · 0 评论 -
kotlin isEmpty()和isBlank()的区别,以及ifEmpty和ifBlank
isEmpty() 只关心字符串是否有任何字符, isBlank() 关注的是字符串中的字符是否具有实际可见的内容。isEmpty()和isBlank()的区别。" ".isEmpty() 为false。" ".isBlank() 为true。原创 2024-01-02 17:29:57 · 892 阅读 · 0 评论 -
kotlin isEmpty/isNotEmpty/isNullOrEmpty和isBlank/isNotBlank/isNullOrBlank
首先检查字符序列的长度是否为 0。如果长度为 0,则表明这个字符序列不包含任何字符,因此被认为是空白的,直接返回。isNullOrBlank 如果判断的字符为nul,空或者是一个空字符返回true负责返回false。“ ”单个空格字符 这是一个只包含一个空白字符(ASCII 码为 32 的字符)的字符串,其长度为 1。isNullOrEmpty : 如果判断的字符为空或者null返回true否则返回false。isBlank 如果判断的字符为空或者是一个空字符返回true负责返回false。原创 2024-01-02 17:16:21 · 1705 阅读 · 0 评论 -
kotlin 中 maxBy 也 minBy
根据传入的条件来遍历集合,从而找到该条件下的最大值与最小值。原创 2024-01-02 15:03:34 · 657 阅读 · 0 评论 -
kotlin 中 any, all , none
true说明给定元素与谓词匹配,false则表示不匹配// 集合中的元素有一个是以e结尾的就满足// 打印结果true// 集合中所有的元素是以e结尾的就满足// 打印结果false// 集合中没有一个元素是以e结尾的才满足// 打印结果falseany() 和 none() 也可以不带谓词使用:在这种情况下它们只是用来检查集合是否为空。如果集合中有元素,any() 返回 true,否则返回 false;none() 则相反。原创 2024-01-02 14:28:08 · 963 阅读 · 0 评论 -
kotlin 过滤集合中的特定的元素
如果集合中是不同的类型过滤出相同的类型建议使用filterIsInstance。1 如果是同一种类型的操作,建议使用filter 或者是partition。kotlin提供了过滤集合很方便过滤集合中特定的元素。例如过滤出字符长度大于3的元素。使用partition。原创 2024-01-02 13:36:29 · 1245 阅读 · 0 评论 -
kotlin foreach 循环
java中的foreach循环也使用于kotlin ,先回顾下java里面的foreach循环。下面就是kotlin foreach循环的一个简单的遍历。使用的时候直接是要遍历的对象.foreach 即可。kotlin中 这些都帮我们下写好了,下面是源码。java foreach循环格式。原创 2024-01-02 13:18:10 · 1217 阅读 · 0 评论 -
kotlin filter 过滤集合(filterIndexed,filterNot,filterIsInstance,filterNotNull)
filter 在kotlin中一个高阶函数属于过滤集合中其中之一。原创 2024-01-02 11:20:27 · 2223 阅读 · 0 评论 -
kotlin by lazy 的使用
在这种demo中 通过 by lazy 懒加载的ExportController,当。by 是在kotlin中代表者委托, lazy 懒加载。之后的访问都将直接返回已经创建好的。by lazy 就是委托延时处理。实例,避免了不必要的重复初始化。下面写一个demo说明下。by lazy 的作用。第一次被访问时,会调用。原创 2023-12-26 23:20:26 · 1191 阅读 · 0 评论 -
kotlin listOf与mutableListOf
创建的列表是只读的,不能添加、删除或修改元素。尝试修改这个列表会抛出。函数在编译时就确定了列表的大小和内容,因此它更适用于创建固定不变的数据结构。是Kotlin的标准库函数,它返回一个不可变的列表(实现了。是Kotlin的标准库函数,它返回一个可变的列表(实现了。这种方式创建的列表是可以添加、删除或修改元素的。在运行时动态创建列表,因此在性能上可能略逊于。然后将这个可变列表传递给。构造函数,创建一个新的。对象,它也是可变的。原创 2023-12-26 21:11:10 · 1197 阅读 · 0 评论 -
kotlin遍历list
方法二:使用until。方法三:forEach。方法一 for in。原创 2023-12-26 21:04:11 · 796 阅读 · 0 评论 -
Kotlin 使用list.add 时候报错的处理方法
在Kotlin 中 使用list.add 方法的时候出现报错例如下面的现象这个时候处理的方法就是把List 更换为MutableList 这样就不会报错了下面是处理之后的.原创 2020-11-28 11:07:29 · 4047 阅读 · 0 评论 -
The expression cannot be a selector(occur after a dot)下面是 what went wrong: Execution failed for task
这个是Kotlin 写跳转 界面的时候出现的问题使用不对,可以看下跳转的地方this 是否有红色的横线提示错误正确的写法如下:val intent = Intent( this,MainActivity::class.java)startActivity(intent)// 或者startActivity(Intent(this, MainActivity::class.java))//注 意 如果在onCrate 里面写跳转,假如当前界面为TestActivity 要跳转到MainAc原创 2020-09-27 16:56:53 · 1878 阅读 · 3 评论 -
Koltin 高阶函数
高阶函数高阶函数是将函数用作参数或返回值的函数。在java中函数和方法是同一个概念,我就把高阶函数理解为:高阶函数是将方法用作参数或返回值的方法,java中我们要调用方法里面的参数一般需要实现这个方法,现在不需要实现,这个可以拿方法来使用了也就是简化我们的操作看下let的源码/** * Calls the specified function [block] w...原创 2019-05-24 11:06:46 · 424 阅读 · 1 评论 -
Kotlin let、with、run、apply、also函数的使用
let,with,run,apply,also 是内联扩展函数下面是自己使用的心的如果有错的地方希望给予指正谢谢这几个主要用来简化操作,使得代码可读性提高 ,下面列举项目中使用效果1 let先不啰嗦了 直接代码吧 ,不是let 的代码 val list = ArrayList<String>() list.add("A") ...原创 2019-05-23 17:16:31 · 573 阅读 · 0 评论 -
Kotlin 函数的问题
Kotlin 函数呢 需要先清楚Java的函数问题java方法(函数)知识回顾先写一个java的方法(函数) public void aMethod() { System.out.println("无参数无返回值的方法"); } public void bMethod(int b) { System.out.println("...原创 2019-05-14 16:06:22 · 292 阅读 · 0 评论 -
Kotlin 中 Activity 跳转问题
java写andorid 跳转 Intent intent = new Intent(this,MainActivity.class); startActivity(intent); startActivity(new Intent(this,MainActivity.class));Kotlin 没有了new 关键字 我们不能使用new 了关于ko...原创 2019-05-10 21:59:09 · 1499 阅读 · 0 评论 -
Kotlin setText 使用
Kotlin 是吧布局引入界面我们就不在需要在findviewbyid 了例如一个textview的id现在需要给一个TextView 赋值java 我们使用text.setText("我是按钮")同样在kotlin 这种也是可以使用的 但是会有提示写了习惯了也就是慢慢习惯了koltin的写法如下text.text = "我是按钮"同样的写法其他地方也...原创 2019-05-10 17:37:00 · 3315 阅读 · 0 评论 -
Kotlin implements 的实现
上一遍博客写到kotlin 没有extends关键了,同样 kotlin中也没有 implements 关键字了,我们要使用呢可以吧 implements 去掉 写一个 冒号:即可先看看java的例如我们监听用户输入字体变化的时候然后我们 alt + enter 就是实现TextWatcher的方法了在看看kotlin 中这个逗号 是 多个几件...原创 2019-05-09 17:43:33 · 8419 阅读 · 0 评论 -
Kotlin 继承
在java 中继承使用关键字extens 但是在kotlin中这个 没有extens 这个关键字了,记得之前刚学kotlin的时候还以为kotlin不能使用继承呢,最后自己发现了这句话要声明一个显式的超类型,我们把类型放到类头的冒号之后:好吧 ,原来继承是这样使用的,android 中我们这样写kotlin中 只需要把 extends 变成 冒号,然后换需要在方法名后面添加...原创 2019-05-09 17:31:26 · 349 阅读 · 0 评论 -
Kotlin 中 switch 写法
在Kotlin 中并没有switch 操作符, 取而代之的是whenjava的写法: int i= 5; switch (i){ case 5: System.out.print("5"); break; case 4: System.out.p...原创 2019-05-09 16:41:25 · 13687 阅读 · 1 评论 -
Kotlin for 循环使用
Kotlin 的for循环使用的是in先写2个中java的for循环 //普通写法 String [] array ={"苹果","香蕉","菠萝"}; for (int i=0;i<array.length;i++){ System.out.println(array[i]); }//for each 写法Stri...原创 2019-05-09 15:58:27 · 4145 阅读 · 0 评论 -
Kotlin 数组的使用
数组在 Kotlin 中使用Array类来表示,它定义了get与set函数(按照运算符重载约定这会转变为[])以及size属性先java 写几个 int [] arr = new int[3]; String [] a =new String[3]; int [] ar ={1,2,3}; String [] array ={"苹果","香蕉",...原创 2019-05-09 15:13:52 · 2026 阅读 · 0 评论 -
Kotlin 创建对象
在java中创建一个对象 可以使用new关键字类名 对象名 = new 类名();例如LocationService ls = new LocationService();注意 Kotlin 并没有new关键字。可以如下创建var ls = LocationService()也就是 类型 对象名 = 类名()类型 可以使用var 或者val...原创 2019-05-08 21:37:21 · 11393 阅读 · 0 评论 -
kotlin伴生类
伴生对象:类内部的对象声明可以用companion关键字标记写一个demo关键字companion表示伴随,object表示对象,Test表示伴生对象的名称另外创建一个java的方法调用伴生对象的名称是可以去掉的 如下去掉伴生对象名称之后java调用需要Companion如下kotlin中调用 感觉有没有伴生对象名都一样 ...原创 2019-05-08 17:44:35 · 868 阅读 · 0 评论 -
kotlin 定义静态变量
Kotlin 取消了关键字static,也就无法直接声明静态成员,在kotlin中定义静态变量需要使用伴生类 companion先看看下java 的定义如果直接复制粘贴过去如下但是这些却不是静态变量我们如下写法即可 companion object { @JvmStatic val REQUEST_CODE_PER...原创 2019-05-08 16:54:30 · 9969 阅读 · 2 评论