1.4. Metody

Następny przykład pokazuje wywołanie w konsoli metody o nazwie println, która wyświetla na ekranie przekazaną jej jako argument wartość. Argument metody jest jej przekazany w nawiasach umieszczonych po jej nazwie.

scala> println(7)
7

Kolejne polecenie definiuje nową metodę. Definicja rozpoczyna się od słowa kluczowego def, po którym następuje nazwa metody — times2. Definicja metody specyfikuje, w nawiasach okrągłych, jednoelementową listę parametrów. Parametr metody nazywa się x i jest typu Int. Typ parametru jest umieszczony po jego nazwie i oddzielony od niej znakiem dwukropka. Po liście parametrów znajduje się kolejny dwukropek i nazwa typu Int, oznaczająca typ rezultatu metody. Po znaku równości znajduje się wyrażenie definiujące treść metody. Metoda zwraca rezultat, będący wartością parametru wejściowego x pomnożoną przez dwa.

scala> def times2(x: Int):Int = 2 * x
times2: (x: Int)Int

Konsola wyświetliła informację dotyczącą sygnatury zdefiniowanej metody. Według tej sygnatury, metoda ma nazwę times2 i posiada jednoelementową listę parametrów. Na tej liście znajduje się parametr o nazwie x i typie Int. Po liście parametrów znajduje się informacja o typie rezultatu metody, którym jest również typ Int.

Poniższe polecenia pokazują wywołania metody times2, w których po nazwie metody podane są argumenty w nawiasach okrągłych.

scala> times2(2)
res1: Int = 4

scala> times2(3)
res2: Int = 6

Następny przykład pokazuje definicję kolejnej metody. Tym razem metoda ma nazwę hello. W przeciwieństwie do poprzedniej, ta metoda nie ma listy parametrów. Scala umożliwia definiowanie metod, które nie mają listy parametrów. Definicja nie zawiera również jawnego określenia typu rezultatu metody. Podobnie jak to było w przypadku wcześniejszych definicji wartości i zmiennych, Scala jest w stanie sama wywnioskować typ rezultatu tej metody. Po znaku równości znajduje się blok kodu ograniczony nawiasami klamrowymi. Wewnątrz tego bloku kodu znajdują się wywołania metod print i println. W przypadku definicji metody times2, całe ciało metody składało się z jednego wyrażenia, w związku z tym stosowanie nawiasów klamrowych nie było potrzebne. Obie instrukcje oddzielone są znakiem średnika. Każde z wywołań metod zawiera, oprócz nazwy metody, jeden argument, który zostaje przekazany wywoływanej metodzie. Argumenty są umieszczone w nawiasach okrągłych. Argumentami są łańcuchy znakowe, umieszczone pomiędzy znakami cudzysłowu. Metody print oraz println powodują wyświetlenie na ekranie wartości przekazanego im argumentu, przy czym metoda println powoduje dodatkowo przejście do nowego wiersza.

scala> def hello = { print("Hello ");println("world!") }
hello: Unit

Sygnatura metody wyświetlona przez konsolę nie zawiera listy parametrów, a rezultat metody jest typu Unit. Wywołanie metody hello polega na podaniu jej nazwy. Ponieważ metoda nie ma zdefiniowanej listy parametrów, więc w wywołaniu nie uzupełniamy nazwy nawiasami okrągłymi.

scala> hello
Hello world!

Język programowania Scala Wydanie 2. Copyright © Grzegorz Balcerek 2016

Licencja Creative Commons

Ten utwór jest dostępny na licencji Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Międzynarodowe.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.