Карта Scala: таинственный синтаксический сахар?

Возможно, проблема в том, что вы используете обратные пометки вокруг Respondent.Serial.

Если ваша структура документа такая, это не правильно.

{
  "Respondent": {
      "Serial": "8"
  }
}

Вы должны использовать обратные пометки, только если у вас есть одно имя поля, которое включает точку, например:

{
  "Respondent.Serial": "8"
}

Предполагая, что у вас есть прежняя структура документа, попробуйте свои запросы без обратные кавычки.

9
задан Eugene Yokota 15 December 2010 в 20:11
поделиться

2 ответа

Если бы Вы имеете в виду (было бы хорошо, если Вы могли бы быть более явными),

m("Hello") = 5

это предназначается синтаксический сахар для

m.update("Hello", 5)

независимый от того, каков m. Это походит

m("Hello")

который является синтаксическим сахаром для

m.apply("Hello")

(Я просто читаю "Программирование в Scala".)

14
ответ дан 4 December 2019 в 11:08
поделиться

@starblue корректен. Обратите внимание, что можно также сделать довольно творческие вещи с update такой как возвращение значения кроме того, что было присвоено. Например:

val a = Map(1 -> "one")      // an immutable Map[Int, String]
val b = a(2) = "two"
val c = b(5) = "five"
val d = c(1) = "uno"

d == Map(1 -> "uno", 2 -> "two", 5 -> "five")       // => true

Это работает потому что immutable.Map#update возвращает экземпляр нового Map. Это выглядит немного нечетным к глазу C-trained, но Вы привыкаете к нему.

5
ответ дан 4 December 2019 в 11:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: