您好我试图使用具有高阶函数的大小写匹配。 if函数返回true为false做同样的事情。谢谢。
def funk(ls:List[Int],f:Int=>Boolean):List[Int]=
{
f match
{
case true => do something
case false => do somethingelse
}
}
答案 0 :(得分:0)
看起来是一个适用的地方"然后"部分功能:
这可能是您需要的:
def funk(ls: List[Int], f: Int => Boolean): List[Int] = {
val z = f.andThen(r => r match {
case true => List(1, 2) // ..something
case false => List(3, 4) // somethingElse
})
// function application
z(5)
}
围绕PartialFunction' s挖掘一下:
http://www.scala-lang.org/api/current/scala/PartialFunction.html
答案 1 :(得分:0)
你必须执行该函数并将返回值传递给match case
def funk(ls:List[Int],f:Int=>Boolean):List[Int]=
{
f(some integer value) match
{
case true => return a list of integers
case false => return a list of integers
}
}
例如
def funk(ls:List[Int],f:Int=>Boolean):List[Int]=
{
f(ls(0)) match
{
case true => List(1,2)
case false => List(4,3)
}
}