天天看点

Kotlin学习之使用infix函数构建更可读的语法

infix

1.什么是infix函数

Kotlin允许在不使用括号和点号的情况下调用函数,那么这种函数被称为 infix函数。

2.infix 函数需要满足的条件

需要满足的条件:

  • 必须是成员函数或扩展函数
  • 必须只有一个参数
  • 其参数不得接受可变数量的参数且不能有默认值

3.使用示例

在String类中有一个startsWith()函数,用于判断一个字符串是否是以某个指定函数开头的。

if( "Hello Kotlin".startsWith("Hello") ){
    //处理具体的逻辑
}
           

虽然startsWith()函数的用法非常简单,但是借助infix函数,我们可以使用一种更具可读性的语法来表达这段代码

新建一个infix.kt

这里给String类添加了一个beginsWith()函数,它用于判断一个字符串是否是以某个指定参数开头。而加上了infix关键字之后,beginsWith()函数就变成了一个infix函数,这样除了传统的函数调用方式之外,我们还可以用一种特殊的语法糖格式调用beginsWith()函数,如下所示:

if ("Hello Kotlin" beginsWith "Hello") {
    // 处理具体的逻辑
}
           

我们还可以给Collection接口添加一个扩展函数:

现在我们就可以使用如下的语法来判断集合中是否包括某个指定的元素:

val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape")
if (list has "Banana") {
    // 处理具体的逻辑
}
           

现在我们就可以使用如下的语法来判断集合中是否包括某个指定的元素:

val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape")
if (list has "Banana") {
    // 处理具体的逻辑
}