Каковы обратные ссылки, используемые в нижеприведенном фрагменте?
Зачем добавлять их вокруг fun is(amount:Int ):Boolean { ... }
?
verifier.`is`(amount)
Каковы обратные ссылки, используемые в нижеприведенном фрагменте?
Зачем добавлять их вокруг fun is(amount:Int ):Boolean { ... }
?
verifier.`is`(amount)
Это потому, что is
является зарезервированным ключевым словом в Котлине. Поскольку предполагается, что Kotlin совместим с Java, а is
- это допустимое имя метода (идентификатора) в Java, обратные элементы используются для выхода из метода, чтобы его можно было использовать как метод, не запутывая его как ключевое слово. Без него это не сработает, потому что это будет недопустимый синтаксис.
Это выделено в документации Kotlin:
Escaping для Java-идентификаторов, которые являются ключевыми словами в Kotlin
Некоторые ключевые слова Kotlin являются допустимыми идентификаторами в Java:
in
,object
,is
и т.д. Если в Java-библиотеке используется ключевое слово Kotlin для метода, вы все равно можете вызвать метод, ускоряющий его с помощью символ обратного хода (`)foo.`is`(bar)
Позволяет вам вызвать метод Java, имя которого является ключевым словом Kotlin. Это не сработает, если вы оставите обратные ссылки.
Обратный ход - это "обходной путь", позволяющий вызывать методы, которые имеют имя, представляющее ключевое слово Kotlin.
См. kotlinlang:
Некоторые ключевые слова Kotlin являются допустимыми идентификаторами в Java: in, object, is и т.д. Если в Java-библиотеке используется ключевое слово Kotlin для метода, вы все равно можете вызвать метод, экранирующий его с помощью символа backtick (`)
is
в списке зарезервированных Kotlin words
Чтобы использовать зарезервированное слово Kotlin (например, is
или object
) для имени функции/класса, вы должны обернуть его в обратные образы
Некоторые ключевые слова Kotlin являются допустимыми идентификаторами в Java: in, object, is и т.д. Если в Java-библиотеке используется ключевое слово Kotlin для метода, вы все равно можете вызвать метод, экранирующий его с помощью символа backtick (`)