下面的代码片段中使用的反撇号是什么?
为什么要在 fun is(amount:Int ):Boolean { ... }周围加上它们?
fun is(amount:Int ):Boolean { ... }
verifier.`is`(amount)
它允许您调用名为 Kotlin 关键字的 Java 方法。如果你省略了背签,就不会有用。
这是因为在 Kotlin is是一个保留关键字。因为 Kotlin 被认为可以与 Java 互操作,而且 is在 Java 中是一个有效的方法(标识符)名称,所以反勾被用来转义该方法,这样它就可以作为一个方法使用,而不会混淆它作为一个关键字。没有它就不能工作,因为它的语法是无效的。
is
这是突出的 在 Kotlin 的文件中:
在 Kotlin 用作关键字的 Java 标识符的转义 一些 Kotlin 关键字是 Java 中的有效标识符: in、 object、 is等。如果一个 Java 库使用 Kotlin 关键字作为一个方法,你仍然可以使用反勾(’)字符来调用方法 foo.`is`(bar)
一些 Kotlin 关键字是 Java 中的有效标识符: in、 object、 is等。如果一个 Java 库使用 Kotlin 关键字作为一个方法,你仍然可以使用反勾(’)字符来调用方法
in
object
foo.`is`(bar)
Kotlin 名单中的 is保留字 若要使用 Kotlin 保留字(如 is或 object)来表示函数/类名,应将其包装为反勾
一些 Kotlin 关键字是 Java 中的有效标识符: in、 object、 is 等。如果一个 Java 库使用 Kotlin 关键字作为一个方法,你仍然可以使用反勾(’)字符来调用方法
Https://kotlinlang.org/docs/reference/java-interop.html
反勾是一种“变通方法”,允许您调用具有代表 Kotlin 关键字的名称的方法。
见 Kotlinlang:
反勾在测试长函数名时非常有用:
@Test fun `adding 3 and 4 should be equal to 7`() { assertEquals(calculator.add(3, 4), 7) }
这使得函数名更具可读性。我们可以在函数名中添加空格和其他特殊字符。但是,请记住只在测试中使用它,它违反了 Kotlin 常规代码的编码惯例。