# 1. 前言
在上一小节中了解了`Kotlin`的扩展函数,接下来使用`Kotlin`的扩展属性。我们知道在类中可以定义属性和方法,而方法也就是函数。所以这里的属性其实也就是类的属性。类似的,这里还是以案例说明:
~~~
// 自定义属性,统计字符串中包含[a,b,c,d]任意字母的个数
val String.Count
get() = count { "abcd".contains(it) }
fun main() {
println("abuisfkjac".Count)
}
~~~
结果:
```
4
```
至于这个`count`函数为什么可以统计包含的字符的出现个数,不妨看看源码:
~~~
public inline fun CharSequence.count(predicate: (Char) -> Boolean): Int {
var count = 0
for (element in this) if (predicate(element)) ++count
return count
}
~~~
从上面源码我们可以知道,在计数的时候,使用的是遍历每个字符进行统计。所以可以对传入的字符串进行是否在当前`this`字符串中进行统计计数。
- Kotlin语言基础
- Kotlin的简介
- Kotlin的变量和常见数据类型
- Kotlin的区间
- Kotlin的位运算
- Kotlin的容器
- Kotlin类型检查
- Kotlin的空值处理
- Kotlin的函数
- Kotlin的类
- Kotlin的委托
- Kotlin的延迟加载
- Kotlin的异常
- Kotlin的Lambda表达式
- Kotlin的高阶函数
- Kotlin的标准库中的高阶函数
- Kotlin的泛型
- Kotlin的表达式
- Kotlin的解构
- Kotlin的运算符重载
- Kotlin语言中级
- Kotlin的扩展函数
- Kotlin的扩展属性
- Kotlin的infix关键字
- Kotlin的DSL
- Kotlin的一些注解(和Java互调用)
- Kotlin的lateinit和by lazy
- Kotlin的反射
- Kotlin的匿名接口
- 安卓中的Kotlin
- 数据库操作Room