为什么这个Kotlin方法有封闭反引号?

时间:2017-05-24 05:12:43

标签: java methods kotlin backticks

下面的代码段中使用的反引号有哪些?

为什么要在fun is(amount:Int ):Boolean { ... }附近添加它们?

verifier.`is`(amount)

6 个答案:

答案 0 :(得分:41)

这是因为is是Kotlin中的保留关键字。由于Kotlin应该与Java可互操作,并且is是Java中的有效方法(标识符)名称,因此反引号用于转义方法,以便可以将其用作方法而不会将其作为关键字混淆。没有它它将无法工作,因为它将是无效的语法。

突出显示in the Kotlin documentation

  

转义为Kotlin

中关键字的Java标识符      

某些Kotlin关键字是Java中的有效标识符:inobjectis等。如果Java库使用Kotlin关键字作为方法,您仍然可以调用用反引号(`)字符转义它的方法

foo.`is`(bar)

答案 1 :(得分:4)

它允许您调用名称为Kotlin关键字的Java方法。如果你省略反击,它就不会起作用。

答案 2 :(得分:4)

反引号是一种“解决方法”,允许您调用名称代表Kotlin关键字的方法。

请参阅kotlinlang

  

某些Kotlin关键字是Java中的有效标识符:in,object,is等。如果Java库对方法使用Kotlin关键字,您仍然可以使用反引号(`)字符调用转义它的方法< / p>

答案 3 :(得分:2)

对测试有用

反引号在测试长函数名时非常有用:

@Test
fun `adding 3 and 4 should be equal to 7`() {
    assertEquals(calculator.add(3, 4), 7)
}

这使得函数名称更具可读性。我们可以在函数名称中添加空格和其他特殊字符。但是,请记住仅在测试中使用它,它违反了常规代码的 Kotlin 编码约定。

答案 4 :(得分:1)

Kotlin保留名单中的

is words 要将Kotlin保留字(例如isobject)用于函数/类名,您应该将其包装为反引号

答案 5 :(得分:1)

  

某些Kotlin关键字是Java中的有效标识符:in,object,is等。如果Java库对方法使用Kotlin关键字,您仍然可以使用反引号(`)字符调用转义它的方法< / p>

https://kotlinlang.org/docs/reference/java-interop.html