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

の型functionPosition => Option[Path]- これは名前による引数ではなく、同等のFunction1[Position, Option[Path]]です-型の引数を 1 つ取り、 を返す関数です。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 に答える