# 1. 前言
在定义函数的时候,如果只有一个参数,可以使用`infix`来进行简化,如果定义函数的时候使用了这个关键字,那么点操作符以及参数的括号都可以不要,比如下面的案例。
# 2. 案例
## 2.1 普通函数
还是以上一小节的为案例,定义一个可空的类扩展函数:
~~~
fun <T> T?.showInfo(default: String = "对象为空"): T?{
println(this ?: default)
return this;
}
~~~
上面的方法,我们调用为:
~~~
fun main() {
val a: String? = null
a.showInfo()
}
~~~
而,我们可以使用更加简洁的方式来尝试简化。
## 2.2 infix函数
~~~
infix fun <T> T?.showInfo(default: String): T?{
println(this ?: default)
return this;
}
fun main() {
val a: String? = null
a showInfo "对象为空!"
}
~~~
结果:
```
对象为空!
```
注意到上面的函数调用看着确实简洁,但是感觉也差不多,具体使用看自己习惯。且,在使用`infix`关键字之后,我们之前定义的默认参数就不再支持了。
- 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