7.6. Argumenty domyślne
Deklarując parametry metody można podać ich argumenty domyślne. Robi się to dodając, po specyfikacji typu, znak równości i wartość argumentu. Jeśli parametr ma argument domyślny, to nie trzeba podawać jego wartości przy wywołaniu metody. W takim przypadku wartością parametru zostanie argument domyślny. Jeśli w wywołaniu podamy wartość takiego parametru, to ta wartość zostanie użyta, a argument domyślny zostanie zignorowany. Spójrzmy na metodę zdefiniowaną w pliku Arguments2.scala. Parametr greeting tej metody ma argument domyślny.
Plik Arguments2.scala: def greet(greeting: String = "Hello", name: String, surname: String):String = greeting + " " + name + " " + surname + "!"
Wywołanie tej metody może mieć następującą postać.
scala> :load Arguments2.scala Loading Arguments2.scala... greet: (greeting: String, name: String, surname: String)String scala> greet(name="Peter",surname="Brown") res0: String = Hello Peter Brown!
Można też nadal wywoływać metodę podając wartości wszystkich parametrów.
scala> greet(name="John",surname="Brown",greeting="Welcome") res1: String = Welcome John Brown!
scala> greet("Welcome","John","Brown") res2: String = Welcome John Brown!
Jeśli definicja metody ma parametry z argumentami domyślnymi na końcu listy parametrów, to można ją wywołać przy wykorzystaniu argumentów pozycyjnych i bez konieczności podawania wartości tych parametrów.
Plik Arguments3.scala: def greet(name: String, surname: String, greeting: String = "Hello"):String = greeting + " " + name + " " + surname + "!"
W taki sposób jest wywołana metoda greet w poniższym przykładzie.
scala> :load Arguments3.scala Loading Arguments3.scala... greet: (name: String, surname: String, greeting: String)String scala> greet("John","Green") res3: String = Hello John Green!
Specyfikacja języka Scala opisuje używanie argumentów domyślnych w punkcie 4.6.1. |