如何调用调用 "by-name" 作为 Scala 中的参数的函数

How would call a function that calls "by-name" as an argument in scala

我是 scala 的新手,仍处于学习的早期阶段。我正在阅读一篇文章,其中有一个这样的例子:

def example(_list: List[Positions], function: Position => Option[Path]): Option[Path] = _list match {...}

NB

据我了解,此方法适用于:

并将returnOption[Path]

我不明白的是我们应该如何调用这个方法?

我试过这个:

example(Nil, Option( 0,0 ) )

function 的类型是 Position => Option[Path] - 这是 不是 别名参数,它是 类型 等同于 Function1[Position, Option[Path]] - 一个 函数 接受一个类型为 Position 和 returns 的参数 Option[Path].

因此,当您调用它时,您可以传递一个具有匹配类型的 匿名函数 ,例如:

example(Nil, pos => Some(List(pos)))
example(Nil, pos => Some(List()))
example(Nil, pos => None)

你也可以传递一个方法匹配类型,例如:

object MyObj {
  def posToPaths(position: Position): Option[Path] = Some(List(position))

  example(Nil, posToPaths)
}