![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kotlin基础知识语法
明飞1987
这个作者很懒,什么都没留下…
展开
-
函数的参数命名和默认参数
在Kotlin中,函数可以有多个参数,记住参数的顺序或者仅靠位置理解他们的作用可能会很具有挑战性,特别是对于接受多个参数或者有相同类型参数的函数。命名参数通过允许开发者指定传递给函数的每个参数的名称来解决这个问题。原创 2024-04-15 15:22:56 · 255 阅读 · 0 评论 -
安全调用(?.) Elvis运算符(?:)
安全调用运算符允许开发者在可能为空的对象上安全地访问属性或调用方法。如果对象不为空,操作就会被执行;如果对象为空,则跳过操作,并返回null而不是抛出NullPointerException。如果text不为null,那么length将被赋予text的长度;如果text为null,那么length也将为null,全部都不会报NullPointerException。原创 2024-04-15 14:47:32 · 398 阅读 · 0 评论 -
Kotlin泛型的型变之路
Kotlin泛型的型变之路原创 2022-12-21 18:33:02 · 135 阅读 · 0 评论 -
7.反引号 ` `
反引号 ` `原创 2022-12-03 19:31:11 · 637 阅读 · 0 评论 -
4.String模版
String模版原创 2022-11-18 18:24:04 · 61 阅读 · 0 评论 -
3.when表达式
when表达式原创 2022-11-18 18:15:05 · 73 阅读 · 0 评论 -
2.range 数值范围 从哪里 到哪里
range 数值范围 从哪里 到哪里原创 2022-11-18 18:04:16 · 115 阅读 · 0 评论 -
1.编译时常量:const
编译时常量只能在函数之外定义,就可以在编译期间初始了,不能定义在函数方法内,修饰符const不适用于 局部变量.原创 2022-11-18 18:02:45 · 102 阅读 · 0 评论 -
5.Unit、Nothing、Any的区别
Unit、Nothing、Any的区别原创 2022-07-26 17:33:51 · 887 阅读 · 0 评论 -
Sealed class密封类详解
Sealed class密封类详解原创 2022-07-26 16:08:24 · 5082 阅读 · 1 评论 -
Java类如何调用Kotlin的函数类型
在java8之前,JDK不支持lamda表达式,所以在java类里 只能使用FunctionN 来调用Kotlin的函数类型属性,N表示值参数数目, 所以共有Funcion0 到Function23()个方法,每一个FunctionN 都包含一个invoke()函数,专门用于调用函数类型函数。 kotlin类包含了很多各种各样的函数类型@file:JvmName("Hero")class HeroKt {val translator0 : () -> Unit = {..原创 2021-11-30 19:51:45 · 764 阅读 · 0 评论 -
Kotlin 与java 的互操作性
@JvmName("XX") 使用此注解指定编译kotlin类的自定义名字,在java类里可以直接使用该名称。@file:JvmName("Hero")//java类里直接使用该名称Hero.makeProclamation()@JvmField :给kotlin里的属性添加@JvmField,可以直接在java类里面调用 直接访问该属性。@JvmFieldval spells = listOf("Magic Ms. L", "Lay on Hans")...原创 2021-11-30 19:19:21 · 2303 阅读 · 0 评论 -
函数式编程
变换transformmap flatMapmap返回的变换后的集合 中的元素个数 必须和 输入的集合(原始集合)的个数一样,不过,返回变换后的新集合里的元素可以是不同类型的 val animals = listOf("zebra", "giraffe", "elephant", "rat") val babies = animals .map { it } //此时集合变成 : [zebra, giraffe, elephant, rat] .m..原创 2021-11-29 19:53:04 · 62 阅读 · 0 评论 -
infix 关键字
infix适用于有单个参数的扩展函数,如果一个函数使用了infix 关键字,接收者和函数之间的点操作 以及参数的一对括号可以省略fun String?.printWithDefault0(default: String) = print(this ?: default)infix fun String?.printWithDefault(default: String) = print(this ?: default) val nullableString: String? = null .原创 2021-11-25 16:40:16 · 241 阅读 · 0 评论 -
泛型类 泛型接口 泛型方法 泛型约束 out T 协变 in T 逆变
泛型原创 2021-11-23 21:00:40 · 211 阅读 · 0 评论 -
object关键字:对象声明 对象表达式 伴生对象
object关键字原创 2021-11-17 19:45:30 · 292 阅读 · 0 评论 -
主构造函数 次构造函数 初始化顺序 延迟初始化 惰性初始化
主构造函数次构造函数:我们可以定义多个次构造函数来配置不同的参数组合。定义构造函数时,可以给构造函数的参数指定默认值,如果用户不提供值参,就使用这个默认值。class Player2( _name: String, var age: Int = 20, var isNormal: Boolean) { var name = _name get() = field.capitalize() set(value) { .原创 2021-11-17 17:48:48 · 124 阅读 · 0 评论 -
kotlin有名函数 /匿名函数 (匿名)函数类型/ lambda函数引用
有名函数:有名称的函数。fun doSomething(age:Int = 2, flag:Boolean):String{ return "result" }doSomething(25,true) /** count()是个标准函数 { letter ->letter=='s'} 是个匿名函数,作为 count()的参数 */ val totalS = "Mississippi".count({letter.原创 2021-11-10 21:52:47 · 702 阅读 · 0 评论