web-dev-qa-db-fra.com

Kotlin a-t-il une syntaxe pour les littéraux de carte?

En JavaScript: {foo: bar, biz: qux}.

En Ruby: {foo => bar, biz => qux}.

En Java:

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

Kotlin peut sûrement faire mieux que Java?

47
Thomas

Tu peux faire:

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

Ici, to est une fonction infixe qui crée un Pair.

Ou, plus abstrait: utilisez mapOf() comme

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

(trouvé sur kotlinlang )

72
GhostCat

Il y a une proposition pour les ajouter à la langue:

Kotlin/KEEP: littéraux de collection

Si cela passe, la syntaxe pourrait être la suivante:

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