gpt4 book ai didi

string - Scala 从字符串中过滤字符

转载 作者:行者123 更新时间:2023-12-01 10:41:13 33 4
gpt4 key购买 nike

我有下面的代码,它应该计算一个字符在字符串中出现的次数。

  def filter[T] (l: List[T], stays: T ⇒ Boolean): List[T] = {
if( l == Nil ) return Nil
if (stays(l.head) == true) l.head :: filter(l.tail, stays)
else filter(l.tail, stays)
}


def countChar(s: String): List[(Char, Int)] = {
if (s == "") Nil
else (s(0), s.count(_ == s(0))) :: countChar(filter(s.toList, _ == s(0)).mkString)
}

现在我的问题是在

filter(s.toList, _ == s(0))

我收到以下错误:缺少参数类型。我了解这是来自嵌套函数?

我怎样才能解决这个问题?我知道 String 有一些方法可以做我想做的事,但我想使用我自己的过滤方法。

最佳答案

这是 Scala 编译器的局限性:它试图弄清楚 T 是什么类型在filter应该是,使用两个参数 lstays .但它失败了,因为 stays 的类型参数未指定。

如果不想指定stays的类型每次争论(即 filter(s.toList, (_: Char) == s(0) ),你可以 split filter的参数列表分为两部分:

def filter[T] (l: List[T])(stays: T ⇒ Boolean): List[T]

然后 Scala 会知道 TChar到它分析 stays 的类型时.你可以称之为 filterfilter(l.tail)(stays) .

关于string - Scala 从字符串中过滤字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014216/

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