Why does this Kotlin method have enclosing backticks?

前端 未结 5 1923
感情败类
感情败类 2020-11-27 06:16

What are the backticks used for in the snippet below?

Why add them around the fun is(amount:Int ):Boolean { ... }?

verifier.`is`(amount         


        
相关标签:
5条回答
  • 2020-11-27 06:36

    is in list of Kotlin reserved words To use Kotlin reserved word (such as is or object) for function/class name you should wrap it to backticks

    0 讨论(0)
  • 2020-11-27 06:38

    It's because is is a reserved keyword in Kotlin. Since Kotlin is supposed to be interoperable with Java and is is a valid method (identifier) name in Java, the backticks are used to escape the method so that it can be used as a method without confusing it as a keyword. Without it it will not work because it would be invalid syntax.

    This is highlighted in the Kotlin documentation:

    Escaping for Java identifiers that are keywords in Kotlin

    Some of the Kotlin keywords are valid identifiers in Java: in, object, is, etc. If a Java library uses a Kotlin keyword for a method, you can still call the method escaping it with the backtick (`) character

    foo.`is`(bar)
    
    0 讨论(0)
  • 2020-11-27 06:39

    Some of the Kotlin keywords are valid identifiers in Java: in, object, is, etc. If a Java library uses a Kotlin keyword for a method, you can still call the method escaping it with the backtick (`) character

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

    0 讨论(0)
  • 2020-11-27 06:42

    It allows you to call a Java method whose name is a Kotlin keyword. It won't work if you leave out the backticks.

    0 讨论(0)
  • 2020-11-27 06:43

    The backtick are a "workaround" to allow you to call methods that have a name representing a Kotlin keyword.

    See kotlinlang:

    Some of the Kotlin keywords are valid identifiers in Java: in, object, is, etc. If a Java library uses a Kotlin keyword for a method, you can still call the method escaping it with the backtick (`) character

    0 讨论(0)
提交回复
热议问题