如何调用调用“的函数?”;“按名称”;作为scala中的参数
我对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))函数
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。真的很感谢你消除了误解