Scala для понимания с итерацией карты
Я прошел через кучу кодов и учебных пособий, и я до сих пор не понимаю, как перебрать Карту для понимания.
Например: у меня есть карта. Введите как строку (имя учащегося), а значение - как данные учащегося. Я хочу повторить карту студента в качестве каждого ключа и значения. Как я могу достичь этого через понимание.
Вот код, который я пробовал, но я не смог понять
for {
studentMap <- studRepo.getAllStudent()// returns a map
result1 <- performSomeOper(studentMap.key) // I’m not getting an option to access the key/value
result2 <- performSomeOper(studentMap.value)
} yield performYieldOps(result1, result2)
Что я здесь не так делаю? Нужно ли держать студенческую карту вне для понимания? Пожалуйста, накорми мне свой вклад.
1 ответ
for {
(key, value) <- studRepo.getAllStudent()
res1 <- performSomeOper(key)
res2 <- performSomeOper(value)
} yield ...
Вы можете сопоставить ключ, значение от Map
,
а также for comprehension
фактический равен flatMap
, поэтому для вышеперечисленного равно:
m.flatMap {
case (key, value) => ...
}