A Map
- это структура данных, которая сопоставляет ключ (некоторого типа K
) со значением (некоторого типа V
). В Scala такую пару можно обозначить синтаксисом key -> value
. Если ваше намерение состоит в том, чтобы иметь один String
ключ «test1», который сопоставляется со значением String
«test2», то вы можете сделать это следующим образом:
Map("test1" -> "test2")
Ваше объявление myMethod
недопустимо: вам нужно либо определить фактические типы для A
и B
, либо сделать их универсальными параметрами для вашего метода (чтобы метод был универсальным):
// With specific types (assuming both keys and values have String types):
def myMethod(mycollection: Map[String, String]) = //...
// In generic form (allows any key type A, or value type B):
def myMethod[A, B](mycollection: Map[A, B]) = //...
В любом случае, вы можете использовать результат в качестве аргумента при вызове вашего метода следующим образом:
myMethod(Map("test1" -> "test2"))
Обратите внимание:
- Квадратные скобки используются при определении параметров универсального типа или указании типов, используемых в качестве параметров типа.
- Параметры типа могут быть выведены из предоставленных значений. Например,
Map("test1" -> "test2")
использует String
в качестве типа и для ключа, и для значения и эквивалентно Map[String, String]("test1" -> "test2")
.
- Если вам нужно более одной пары ключ / значение, перечислите их через разделитель запятых, например:
Map("key1" -> "value1", "key2" -> "value2", "key3" -> "value3")
Я настоятельно рекомендую вам прочитать хорошую книгу по Scala , такую как превосходное Программирование на Scala, 3-е издание от Odersky, Spoon & Venners, чтобы ознакомиться с его синтаксисом и стандартной библиотекой.
В заключение, я настоятельно рекомендую вам использовать неизменную версию Map
, когда это возможно. Если вы не знакомы с принципами функционального программирования , на первый взгляд это может показаться необычным, но преимущества огромны.