# 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