web-dev-qa-db-ja.com

KotlinにはMapリテラルの構文がありますか?

JavaScriptの場合:{foo: bar, biz: qux}

Rubyの場合:{foo => bar, biz => qux}

Javaの場合:

HashMap<K, V> map = new HashMap<>();
map.put(foo, bar);
map.put(biz, qux);

確かにKotlinはJavaよりも優れているのでしょうか?

47
Thomas

できるよ:

_val map = hashMapOf(
  "John" to "Doe",
  "Jane" to "Smith"
)
_

ここで、 to は、Pairを作成する中置関数です。

または、より抽象的な:mapOf()のように使用します

_val map = mapOf("a" to 1, "b" to 2, "c" to 3)
_

kotlinlang にあります)

72
GhostCat

それらを言語に追加する提案があります:

Kotlin/KEEP:Collection Literals

これが完了すると、構文は次のようになります。

val map = ["a" : 1, "b" : 2, "c" : 3]
7
Ben Leggiero