Как мне получить элемент карты с опцией[Длинный]?

#scala

Вопрос:

Ниже у меня есть scala , которая получает ключ из карты объектов m , это работает, когда у меня есть значение, просто отлично, но что происходит, когда у меня есть Option[Long] ? Как я могу получить элемент карты?

 object Main extends App {
  val mainKey: Long = 12345
  val m: Map[Long, String] = Map(mainKey -> "bar")
  println(m.get(mainKey)) // "bar"

  val key: Option[Long] = None

  println(m.get(key)) // syntax error needs Long
  println(m.getOrElse(key, None)) // syntax error needs Long

}
 

Комментарии:

1. key.flatMap(m.get) — В любом случае, это ваш третий вопрос подряд, может быть, было бы лучше пройти курс / учебник по языку? или взгляните на Scaladoc — Или я бы рекомендовал присоединиться к серверу Discord , где проще задать несколько вопросов и продолжить беседу.

2. Это сработало! 🎉 Большое вам спасибо. У меня есть несколько очень конкретных вопросов, в основном касающихся случаев использования опции, и я не вижу, чтобы это часто использовалось в учебниках для начинающих, и когда я ищу переполнение стека, я не получаю многого. Я бы предпочел задать этот вопрос здесь и позже вернуться к этим вопросам в качестве справки и, возможно, помочь другим в этом процессе. Не стесняйтесь добавлять это в качестве ответа, и я приму его и / или проигнорирую мои вопросы, продвигаясь вперед.

3. Вы не получите многого, потому что, если вы установите IDE, такую как IntelliJ, на все эти вопросы ответят, поставив точку после значения и нажав Ctrl Пробел. Или поиск доступных символов с двойным сдвигом. Вряд ли кто-то целенаправленно запоминает какой-то конкретный API наизусть. Но вам нужно сначала изучить основы (здесь: .карта, .Плоская карта, для понимания Map.get ) из учебника по обычному языку.