
kotlin
文章平均质量分 94
kotlin学习笔记
-Yujq
这个作者很懒,什么都没留下…
展开
-
Android开发——kotlin语法进阶3
Kotlin 的协变与逆变统称为 Kotlin 的变型。变型是指泛型的基础类型与它的参数类型是如何关联的。对于普通类型来说,我们可以使用子类代替父类,因为子类包含了父类的全部内容。但是对于泛型来说,如果泛型的基础类型相同,其中一个参数类型是另外一个参数类型的子类,泛型类也不存在这种继承关系,无法直接替换使用。要解除这些限制,就需要用到协变与逆变。原创 2022-11-13 16:10:41 · 1223 阅读 · 0 评论 -
Android开发——kotlin语法基础
安全调用允许在可空类型上调用函数,但是如果还想做点额外的事,比如创建新值,或者判断不为null就调用其他函数,就可以使用带let函数的安全调用操作符,可以在任何类型上调用let函数,它的主要作用是可以在指定作用域内定义一个或多个变量。kotlin标准库提供的便利函数,使用这些内置函数,可以抛出带自定义信息的异常,这些便利函数又叫做先决条件函数,可以用它定义先决条件,条件必须满足,目标代码才能执行。,就像其他变量一样,匿名函数就可以在代码里传递了,变量有类型,变量可以等于函数,函数也会有类型,原创 2022-11-06 22:17:41 · 1045 阅读 · 0 评论 -
Android开发——kotlin语法基础2
有时候你不一定非要定义一个新的命名类不可,也许只需要某个现有类的一种变体实例,但只需要用一次就行了,事实上,对于这种用完就丢的类实例,命名也可以省略,这个对象表达式是XX的子类,这个匿名类依然遵循object关键字的一个规则,即一旦实例化,该匿名类只能有唯一一个实例存在。解构声明的后台实现就是声明component1,component2等若干个组件函数,让每个函数负责管理你想返回的一个属性数据,如果你定义一个数据类,它会自动为所有定义在主构造函数的属性添加对应的组件函数。在用它之前负责初始化,原创 2022-11-13 16:02:53 · 902 阅读 · 0 评论 -
Kotlin协变和逆变概念及解析
可以看到test传入参数爆红,这就和最开始说的Production并不是Production的父类是同样的问题,如果说kotlin允许这样跨继承传参(即test方法调用时不编译报错),那data.get()拿到的就是一个Orange类型的对象而data.get()需要返回的是一个Apple类型的对象,这样就会发生类型转换异常。如果泛型的基础类型相同,其中一个参数类型是另外一个参数类型的子类,泛型类也不存在这种继承关系,无法直接替换使用。要解除这些限制,就需要用到协变与逆变。原创 2022-11-10 14:38:48 · 731 阅读 · 0 评论