0

我对 scala 还很陌生,仍处于学习的早期阶段。我正在阅读一篇文章,其中有一个这样的例子:

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

注意

  • 职位是一个(Int,Int)
  • 路径是一个List( Position )

据我了解,这种方法将成立:

  • list of positions

  • Option[Path]

并将返回Option[Path]

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

我试过这个:

example(Nil, Option( 0,0 ) )

4

1 回答 1

2

的类型- 这function不是一个按名称的参数,它是一种等效于- 一个函数,它接受一个类型的参数并返回一个.Position => Option[Path]Function1[Position, Option[Path]]PositionOption[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)
}
于 2016-11-22T12:11:17.053 回答