【发布时间】:2019-02-14 18:27:10
【问题描述】:
我是 scala 的新手,正在尝试编写一个函数,该函数返回给定字符串中每个字母的所有索引的映射。我的代码:
def group(string: String) = {
val map = mutable.Map[Char, ListBuffer[Int]]()
for (i <- string.indices) {
val ch = string(i)
if(map.contains(ch)) map(ch) += i
else map += (ch -> ListBuffer(i))
}
map
}
当我尝试编译时出现错误:
错误:(14, 30) 类型参数 [?,Iterable[Any] with PartialFunction[Int with Char,Any] with scala.collection.generic.Subtractable[_ >: Int with Char <: anyval iterable with partialfunction char scala.collection.generic.subtractable>: Int with Char <: anyval iterable with partialfunction char scala.collection.generic.subtractable>: Int with Char <: anyval equals seq: iterable with partialfunction char trait subtractable scala.collection.generic.subtractable val v="for" string.indices>
循环的值似乎有问题。所以我添加到循环'true'的最后一行,现在一切正常:
def group(string: String) = {
val map = mutable.Map[Char, ListBuffer[Int]]()
for (i <- string.indices) {
val ch = string(i)
if(map.contains(ch)) map(ch) += i
else map += (ch -> ListBuffer(i))
true
}
map
}
我的代码有什么问题,我该如何解决? Scala 版本:2.12.6
【问题讨论】:
标签: scala loops collections