web-dev-qa-db-ja.com

このKotlinメソッドにバックティックが含まれているのはなぜですか?

以下のスニペットで使用されているバックティックは何ですか?

なぜfun is(amount:Int ):Boolean { ... }の周りに追加するのですか?

verifier.`is`(amount)
30
Kris Roofe

isはKotlinの予約キーワードであるためです。 KotlinはJavaおよびisはJavaの有効なメソッド(識別子)名であると相互運用可能であると想定されているため、バックティックを使用してメソッドをエスケープして使用できるようにします。キーワードとして混同することなくメソッドとして使用します。これがないと、無効な構文になるため機能しません。

これは強調表示されています Kotlinドキュメント内

Java Kotlinのキーワードである識別子のエスケープ

Kotlinキーワードの一部は、Javaで有効な識別子です:inobjectisなど。JavaライブラリがKotlinを使用する場合メソッドのキーワードは、バックティック( `)文字でエスケープするメソッドを呼び出すことができます

foo.`is`(bar)
46
Li357

これにより、名前がKotlinキーワードであるJavaメソッドを呼び出すことができます。バッククォートを省略すると機能しません。

4
wero

バックティックは、Kotlinキーワードを表す名前を持つメソッドを呼び出すことを可能にする「回避策」です。

kotlinlang を参照してください:

Kotlinキーワードの一部は、Javaの有効な識別子です。in、object、isなど。JavaライブラリがメソッドにKotlinキーワードを使用している場合でも、バックティック( `)文字

4
GhostCat

is予約済みKotlinのリストで words 関数/クラス名にKotlin予約語(isobjectなど)を使用するには、ラップする必要がありますバックティックへ

1
gildor

Kotlinキーワードの一部は、Javaの有効な識別子です:in、object、isなど。JavaライブラリがメソッドにKotlinキーワードを使用している場合でも、バックティック( `)文字

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

1
Zoli Szabó