Search code examples
kotlinmethodskeywordbackticks

Why does this Kotlin method have enclosing backticks?


What are the backticks used for in the snippet below?

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

verifier.`is`(amount)

Solution

  • 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)