如何调用调用“的函数?”;“按名称”;作为scala中的参数

如何调用调用“的函数?”;“按名称”;作为scala中的参数,scala,functional-programming,method-call,scala-option,pass-by-name,Scala,Functional Programming,Method Call,Scala Option,Pass By Name,我对scala还很陌生,还处于学习的初期。我在读一篇文章,上面有这样一个例子: def示例(_-list:list[Positions],function:Position=>Option[Path]):Option[Path]=_-list-match{…} NB 位置是一个(Int,Int) 路径是一个列表(位置) 据我所知,该方法适用于: 职位列表 选项[路径] 并将返回选项[Path] 我不明白的是我们该怎么称呼这个方法 我试过这个: 示例(Nil,Option(0,0))函数

我对scala还很陌生,还处于学习的初期。我在读一篇文章,上面有这样一个例子:

def示例(_-list:list[Positions],function:Position=>Option[Path]):Option[Path]=_-list-match{…}
NB

  • 位置是一个
    (Int,Int)
  • 路径是一个
    列表(位置)
据我所知,该方法适用于:

  • 职位列表

  • 选项[路径]

并将返回
选项[Path]

我不明白的是我们该怎么称呼这个方法

我试过这个:


示例(Nil,Option(0,0))

函数的类型是
Position=>Option[Path]
-这是而不是一个按名称的参数,它的类型相当于
Function1[Position,Option[Path]]
-一个函数,它接受一个
类型的参数Position
,并返回一个
选项[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)
}
您还可以传递具有匹配类型的方法,例如:

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)
}

函数
的类型是
Position=>Option[Path]
-这不是一个按名称参数,它是一种类型,相当于
Function1[Position,Option[Path]
-一个函数,它接受一个
Position
类型的参数并返回一个
选项[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)
}
您还可以传递具有匹配类型的方法,例如:

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)
}

非常感谢你,佐哈尔。非常感谢你消除了误会非常感谢你Zohar。真的很感谢你消除了误解