Я ударяю головой о стену над этим. (fyi, я еще не scala pro, но я очень люблю это время)
Скажем, у нас есть этот список кортежей:
val data = List(('a', List(1, 0)), ('b', List(1, 1)), ('c', List(0)))
В списке есть эта подпись:
List[(Char, List[Int])]
Моя задача - получить элемент "List [Int]" из кортежа внутри "данных", ключ которого, скажем, например, буква "b".
Другими словами, если я реализую метод типа findIntList (data, 'b') ", то я ожидаю результат List (1, 1)
Чтобы закончить рисунок, я пробовал следующие подходы. Проблема в том, что со всеми подходами (кроме подхода 1, в котором я использую явный "возврат" ), я либо возвращаю объект List[Option]
или List[Any]
, который я не знаю, как извлечь "List[Int]
" из
Подход 1:
data.foreach { elem => if (elem._1 == char) return elem._2 }
Подход 2:
data.find(x=> x._1 == ch)
Подход 3:
for (elem <- data) yield elem match {case (x, y: List[Bit]) => if (x == char) y}
Подход 4:
for (x <- data) yield if (x._1 == char) x._2