首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Kotlin 知识梳理
订阅
泽毛
更多收藏集
微信扫码分享
微信
新浪微博
QQ
13篇文章 · 2订阅
Kotlin 知识梳理(13) 运行时的泛型
例如,如果你创建了一个List<String>,在运行时你只能看到它是一个List,不能识别出列表本打算包含的是String类型的元素。 接下来我们谈谈伴随着擦除类型信息的约束,因为类型实参String没有被存储下来,你不能检查它们。例如,你不能判断一个列表是一个包含字符串的列…
Kotlin 知识梳理(7) Kotlin 的类型系统
基本数据类型,例如int的变量直接存储了它的值,我们不能对这些值调用方法,或者把它们放到集合中。 引用类型的变量存储的是指向包含该对象的内存地址的引用。 Kotlin不区分基本数据类型和引用类型,它使用的永远是一个类型(例如Int),此外,你还能对一个数字类型的值调用方法。 在…
Kotlin 知识梳理(1) Kotlin 基础
函数的声明以关键字 fun 开始,函数名称 紧随其后,接下来是括号括起来的 参数列表,参数列表的后面跟着 返回类型,返回类型和参数列表之间用冒号隔开,最后是函数体。 表达式 有值,并且能作为另一个表达式的一部分使用。 语句 总是包含着它的代码块中的顶层元素,并且没有自己的值。 …
Kotlin 知识梳理(4) 数据类、类委托 及 object 关键字
在设计数据类时,应当尽量只使用只读的属性,让数据类的实例不可变,因为如果不这样,被用作键的对象在加入HashMap或者类似容器后被修改了,容器会进入一种无效的状态。 这种方法的缺点是:当系统不断演进并且基类的实现被修改或者新方法被添加进去时,你做出的关于类的行为的假设会失效。 …
Kotlin 知识梳理(8) 运算符重载及其他约定
在Kotlin中,我们可以通过 调用自己代码中定义的函数,来实现 特定语言结构。这些功能与 特定的函数命名 相关,而不是与特定的类型绑定。例如,如果在你的类中定义了一个名为plus的特殊方法,那么按照约定,就可以在该类的实例上使用+运算符,这种技术称为 约定。 因为由类实现的接…
Kotlin 知识梳理(11) 内联函数
当我们使用lambda表达式时,它会被正常地编译成匿名类。这表示每调用一次lambda表达式,一个额外的类就会被创建,并且如果lambda捕捉了某个变量,那么每次调用的时候都会创建一个新的对象,这会带来运行时的额外开销,导致使用lambda比使用一个直接执行相同代码的函数效率更…
Kotlin 知识梳理(9) 委托属性
类型为Type的属性p将它的访问器逻辑委托给了另一个Delegate实例,通过关键字by对其后的 表达式求值 来获取这个对象,关键字by可以用于任何 符合属性委托约定规则的对象。 当我们将foo.p作为普通属性使用时,实际上将调用Delegate类型的辅助属性的方法。为了研究这…
Kotlin 知识梳理(12) 泛型类型参数
泛型允许你定义带 类型形参 的类型,当这种类型的实例被创建出来的时候,类型形参被替换成为 类型实参 的具体类型。 和Java不同,Kotlin始终要求类型实参要么被显示地说明,要么能被编译器推导出来。例如,在Java中可以声明List类型的变量,而不需要说明它可以包含哪些事物,…
Kotlin 知识梳理(3) 类、对象和接口
一个简单的Kotlin接口使用 interface 关键字来声明,所有实现这个接口的非抽象类都需要实现接口中定义的抽象方法。 Kotlin在类名后面使用 冒号 代替了Java中的extends和implements关键字,一个类可以实现多个接口,但是只能继承一个类。 overr…
Kotlin 知识梳理(10) 高阶函数:Lambda 作为形参或返回值
在 Kotlin 知识梳理(5) - lambda 表达式和成员引用 中我们初步认识了lambda,这一章我们将学到如何创建 高阶函数:使用lambda作为 参数或者返回值 的函数。高阶函数有助于简化代码,去除代码重复,以及构建漂亮的抽象概念。 按照定义,高阶函数就是 以另一个…