Scala 使用模式匹配返回函数

Scala 使用模式匹配返回函数,scala,pattern-matching,Scala,Pattern Matching,我正在尝试编写一个函数,返回一个基于输入参数的函数 def myFunction(x: Int): x => Boolean { x => if (x < 7) false if (x % 2 == 0) false else true } def myFunction(x:Int):x=>Boolean{ 如果(x 如果(x%2==0)为false 否则是真的 } 因此,如果x小于7或甚至为false,则将返回。否则就是真的 我如何使用模式

我正在尝试编写一个函数,返回一个基于输入参数的函数

def myFunction(x: Int): x => Boolean {
  x => if (x < 7) false
       if (x % 2 == 0) false
       else true
}
def myFunction(x:Int):x=>Boolean{
如果(x<7)为假,则x=>
如果(x%2==0)为false
否则是真的
}
因此,如果x小于7或甚至为false,则将返回。否则就是真的

我如何使用模式匹配来编写这个

如果对int使用模式匹配是毫无意义的,那么更复杂的int列表呢

def myFunction(myList: List[Int]): x => Boolean {
  // just doing something simple here real life is more complex.
  x => if (myList.size() < 7) false
       else true
}
def myFunction(myList:List[Int]):x=>Boolean{
//只是做一些简单的事情现实生活更复杂。
x=>if(myList.size()<7)false
否则是真的
}

谢谢。

处理基本体对象时,模式匹配是无用的

其他备选方案是:

Option(3).map(x => x < 7 || x % 2 == 0).getOrElse(false)

在处理基本体对象时,模式匹配是无用的

其他备选方案是:

Option(3).map(x => x < 7 || x % 2 == 0).getOrElse(false)

我通常是这样搭配的。任何表达式都会返回一个值-if-else和匹配应该具有大致相同的结果

  x match{
    case x if x < 7 => false
    case x if (x % 2 == 0) => false
    case _ => true   }
x匹配{
如果x<7=>false,则为情况x
如果(x%2==0)=>false,则情况x
大小写u=>true}

我通常这样匹配模式。任何表达式都会返回一个值-if-else和匹配应该具有大致相同的结果

  x match{
    case x if x < 7 => false
    case x if (x % 2 == 0) => false
    case _ => true   }
x匹配{
如果x<7=>false,则为情况x
如果(x%2==0)=>false,则情况x
大小写u=>true}

谢谢。那么更复杂的场景呢?可以使用模式匹配吗?在这种情况下,模式匹配没有意义,但是如果您直接匹配整数,编译器可以创建一个switch/case语句。谢谢。那么更复杂的场景呢?可以使用模式匹配吗?在这种情况下,模式匹配没有意义,但是如果直接在整数上匹配,编译器可以创建switch/case语句。