Seq("zwei", "due")) 是:Vector(eins, uno, d-6ren">
gpt4 book ai didi

scala - 从scala中的 map 获取 key

转载 作者:行者123 更新时间:2023-12-05 02:59:35 24 4
gpt4 key购买 nike

我的这段代码有问题,编译器告诉我一个错误

for (key <- keys) type mismatch, found: Unit, required: Seq[String] .

我以错误的方式获取 map 键?谢谢

def sorted(): Seq[String] = {
var sorting: Seq[String] = Seq()
var keys = db.keys.toSeq.sortWith(_ < _)
for (key <- keys) {
var names = db(key).sortWith(_ < _)
for (name <- names) {
sorting = sorting :+ name
}
}

最佳答案

我认为以函数式方式执行此操作可以大大简化此操作:

def sorted(): Seq[String] =
for{
key <- db.keys.toSeq.sorted
value <- db(key).sorted
} yield value
  1. 获取已排序的 Seq 中的键。

  2. 获取已排序的 Seq 中的值。

for-comprehension 一样,这将 flatMap 这些 Seqs

结果:val db = Map("one"-> Seq("eins", "uno"), "two"-> Seq("zwei", "due"))

是:Vector(eins, uno, due, zwei)

如果您有什么不明白的地方,请告诉我。

关于scala - 从scala中的 map 获取 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57778621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com