中缀表示法

2022-09-29 09:01:02 浏览数 (1)

无意苦争春,一任群芳妒。零落成泥碾作尘,只有香如故。——陆游

文档

中缀表示法能让我们定义一些“关键字”

标有 infix 关键字的函数也可以使用中缀表示法(忽略该调用的点与圆括号)调用。中缀函数必须满足以下要求:

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

infix fun Int.shl(x: Int): Int { …… } // 用中缀表示法调用该函数 1 shl 2 // 等同于这样 1.shl(2)

代码如下:

代码语言:javascript复制
infix fun Int?.default(x: Int): Int = this ?: x
infix fun String?.default(x: String): String {
    return this ?: x
}

// 用中缀表示法调用该函数
1 default 0

// 等同于这样
null.default(0)

"1".default("x")

null.default("x")

效果:

0 人点赞