首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Agoni_Soul
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
2
文章 2
沸点 0
赞
2
返回
|
搜索文章
最新
热门
SpannableString和SpannableStringBuilder总结
1. SpannableString、SpannableStringBuilder与String的关联 首先SpannableString与SpannableStringBuilder与String类似,也是用来存储字符串,但它俩的特殊就在于SetSpan()方法,能让存储在其…
Kotlin进阶知识(十二)——声明并应用注解
在Kotlin中使用注解的方法和Java一样。要应用一个注解,以@字符作为(注解)名字的前缀,并放在要注解的声明最前面。 注解只能拥有如下类型的参数:基本数据类型、字符串、枚举、类引用、其他的注解类,以及前面这些类型的数组。 要把一个类指定为注解实参,在类名后加上::class…
Kotlin进阶知识(十一)——变型:泛型和子类型化
子类型:任何时候如果需要的是类型A的值,都能够使用类型B的值(当作A的值),类型B就称为类型A的子类型。 超类型:是子类型的反义词。如果A是B的子类型,那么B就是A的超类型。 一个非空类型是它的可空版本的子类型,但它们都对应着同一个类。你始终能在可空类型的变量中存储非空类型的值…
Kotlin进阶知识(十)——运行时的泛型:擦除和实化类型参数
和Java一样,Kotlin的泛型在运行时也被擦除了。这意味着泛型实例不会携带用于创建它的类型实参的信息。 实际上,泛型类型拥有的每个类型形参都需要一个*[拥有未知类型实参的泛型类型(或者类比于Java的List<?>)]。 因为编译器没有办法判断实参listOf("…
Kotlin进阶知识(九)——泛型类型参数
泛型函数:编写一个使用列表的函数,要求在任何列表(通用的列表)上使用,而不是某个具体类型的元素的列表,这个函数即为泛型函数。 泛型函数有它自己的类型形参。这些形参在每次函数调用时都必须替换成具体的类型实参。 大部分使用集合的库函数都是泛型的。来看看图1中的slice函数。这个函…
Kotlin进阶知识(八)——高阶函数中的控制流
非局部返回:在lambda中使用return关键字,它会从调用lambda的函数中返回,并不只是从lambda中返回。 注意:非局部返回,是从一个比包含return的代码块中更大的代码块中返回了。 在一个非内联函数的lambda中使用return表达式是不允许的。一个非内联函数…
Kotlin进阶知识(七)——内联函数:消除lambda带来的运行时开销
当一个函数被声明为inline时,它的函数体是内联的——换句话说,函数体会被直接替换到函数被调用的地方,而不是被正常调用。 这种情况下,lambda的代码在内联函数被调用点是不可用的,因此并不会被内联。 只有synchronized的函数体别内联了,lambda才会被正常调用。…
Kotlin进阶知识(六)——声明高阶函数
Unit类型用于表示函数不返回任何有用的值。在声明一个普通的函数时,Unit类型的返回值是可以省略的,但是一个函数类型声明总是需要一个显式的返回类型,所以在这种场景下Unit是不能省略的。 调用作为参数的函数和调用普通函数的语法是一样的:把括号放在函数名后,并把参数放在括号内。…
Kotlin进阶知识(五)——重用属性访问的逻辑:委托属性
属性p将他的访问器逻辑委托给了另一个对象:这里的Delegate类的一个新的实例。通过关键字by对其后的表达式求值来获取这个对象,关键字by可以用于任何符合属性委托约定规则的对象。 按照约定,Delegate类必须具有getValue和setValue方法(后者仅适用于可变属性…
Kotlin进阶知识(四)——解析声明和组件函数
解析声明:允许展开单个复合值,并使用它来初始化多个单独的变量。 解析声明用到了约定的原理。要在解构声明中初始化每个变量,将调用名为componentN的函数,其中N是声明中变量的位置。
下一页
个人成就
文章被点赞
149
文章被阅读
146,259
掘力值
3,139
关注了
12
关注者
58
收藏集
2
关注标签
7
加入于
2019-10-27