7.5. Argumenty pozycyjne i nazwane
Przekazywanie argumentów wywoływanej metodzie może odbywać się w różny sposób. Jednym z nich jest stosowanie tak zwanych argumentów pozycyjnych, a drugim argumentów nazwanych. Stosowanie argumentów pozycyjnych polega na podawaniu wartości argumentów w kolejności ich występowania na liście deklaracji parametrów w definicji metody. Spójrzmy na definicję metody greet z pliku Arguments1.scala.
Plik Arguments1.scala: def greet(greeting: String, name: String, surname: String):String = greeting + " " + name + " " + surname + "!"
Wywołanie tej metody z użyciem argumentów pozycyjnych wygląda następująco.
scala> :load Arguments1.scala
Loading Arguments1.scala...
greet: (greeting: String, name: String, surname: String)String
scala> greet("Hello","John","Brown")
res0: String = Hello John Brown!
Stosowanie argumentów nazwanych polega na podawaniu ich wartości poprzedzonych nazwą parametru i znakiem równości. Poniższy przykład pokazuje wywołanie metody greet z użyciem argumentów nazwanych.
scala> greet(greeting="Hello",name="John",surname="Brown") res1: String = Hello John Brown!
Wywołując metodę w ten sposób nie musimy przestrzegać kolejności argumentów zgodnej z kolejnością ich deklaracji w definicji metody. Zatem wywołanie metody greet możemy na przykład zapisać następująco.
scala> greet(surname="Brown",greeting="Hello",name="John") res2: String = Hello John Brown!
Możemy także przekazać wartości początkowych parametrów za pomocą argumentów pozycyjnych, a resztę za pomocą argumentów nazwanych. W poniższym wywołaniu metody greet pierwszy argument jest podany w postaci argumentu pozycyjnego, a następne dwa w postaci argumentów nazwanych.
scala> greet("Hello",surname="Brown",name="John")
res3: String = Hello John Brown!
Plik Arguments1.scala:
def greet(greeting: String, name: String, surname: String):String =
greeting + " " + name + " " + surname + "!"
