0

aufrufen Ich bin ziemlich neu zu scala und noch in den frühen Tagen des Lernens. Ich war ein Artikel zu lesen, die wie so ein Beispiel hatte:Wie würde ich eine Funktion aufrufen, die "By-Name" als Argument in scala

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

NB

  • Position ist ein (Int,Int)
  • Pfad ein List(Position)

Von, was ich zu verstehen, wird diese Methode halten:

  • list of positions

  • Option[Path]

und kehrt Option[Path]

Was ich nicht verstehe ist, wie sollen wir diese Methode nennen? diese

Ich habe versucht:

example(Nil, Option(0,0))

Antwort

2

Die Art der function ist Position => Option[Path] - das ist nicht ein Neben Name Argument, es ist ein Typ, die Function1[Position, Option[Path]] entspricht - eine Funktion das nimmt ein Argument vom Typ Position und gibt Option[Path] zurück.

Also, wenn Sie es nennen Sie eine anonyme Funktion mit passendem Typ passieren können, zB:

example(Nil, pos => Some(List(pos))) 
example(Nil, pos => Some(List())) 
example(Nil, pos => None) 

Sie können auch eine Methode mit passendem Typ übergeben, zB:

object MyObj { 
    def posToPaths(position: Position): Option[Path] = Some(List(position)) 

    example(Nil, posToPaths) 
} 
+0

Vielen Dank Sohar. Schätze es wirklich, um dieses Missverständnis zu klären – Kacy

Verwandte Themen