Kri*_*ofe 37 java methods keyword backticks kotlin
在下面的片段中使用了什么反引号?
为什么要将它们添加到fun is(amount:Int ):Boolean { ... }?
verifier.`is`(amount)
Run Code Online (Sandbox Code Playgroud)
Li3*_*357 52
这是因为isKotlin中的保留关键字.由于Kotlin应该与Java可互操作并且is是Java 中的有效方法(标识符)名称,因此反引号用于转义方法,以便可以将其用作方法而不会将其作为关键字混淆.没有它它将无法工作,因为它将是无效的语法.
这在Kotlin文档中突出显示:
转义为Kotlin中关键字的Java标识符
一些科特林关键字在Java有效标识符:
in,object,is等.如果一个Java库使用科特林关键字的方法,你仍然可以调用该方法与反引号转义它(')字符Run Code Online (Sandbox Code Playgroud)foo.`is`(bar)
反引号是一种“替代方法”,可让您调用名称代表Kotlin关键字的方法。
参见kotlinlang:
某些Kotlin关键字在Java中是有效的标识符:in,object,is等。如果Java库对方法使用Kotlin关键字,您仍然可以调用该方法,并使用反引号(`)字符对其进行转义。
反引号在测试长函数名时非常有用:
@Test
fun `adding 3 and 4 should be equal to 7`() {
assertEquals(calculator.add(3, 4), 7)
}
Run Code Online (Sandbox Code Playgroud)
这使得函数名称更具可读性。我们可以在函数名称中添加空格和其他特殊字符。但是,请记住仅在测试中使用它,它违反了常规代码的 Kotlin 编码约定。
| 归档时间: |
|
| 查看次数: |
6072 次 |
| 最近记录: |