如何在Scala中定义函数的类型?

Ale*_*ack 39 scala function

我希望有一种方法可以为Scala中的函数定义类型.

例如,假设我想要一个需要两个Ints并返回一个布尔值的函数,我可以定义一个使用它的函数:

def checkInts(f: (Int,Int) => Boolean) = {
  // do stuff
}
Run Code Online (Sandbox Code Playgroud)

有没有办法定义f的类型?然后我可以这样做:

def checkInts(f: MyFunctionType)
Run Code Online (Sandbox Code Playgroud)

要么

def checkInts(f: Option[MyFunctionType])
Run Code Online (Sandbox Code Playgroud)

Mit*_*ins 46

trait Foo {
  type MyFunction = (Int,Int) => Boolean

  def checkInts(f: MyFunction)
  def checkInts(f: Option[MyFunction])
}
Run Code Online (Sandbox Code Playgroud)