企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 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`关键字之后,我们之前定义的默认参数就不再支持了。