[英]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
(Int,Int)
List( Position )
據我了解,此方法將適用:
list of positions
Option[Path]
並返回Option[Path]
我不明白的是我們應該怎么稱呼這個方法?
我嘗試了這個:
example(Nil, Option( 0,0 ) )
的類型的function
是Position => Option[Path]
-這不是一個通過名字參數,它是一個類型 ,它等效於Function1[Position, Option[Path]]
-一個函數 ,它類型的一個參數Position
,並返回一個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)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.