W imię przygotowań do Scalania 3 kontynuuję temat.
Wpisujemy bezpośrednio do Scala REPL definicję funkcji sumowania sum, które akceptuje dwa parametry typu Int.
scala> def sum(x: Int, y: Int) = x + y sum: (x: Int, y: Int)IntW odpowiedzi dostajemy nazwę nowej wartości sum i jej typ po dwukropku (x: Int, y: Int)Int, czyli funkcję dwóch parametrów x i y, której wynikiem jest wartość typu Int. Pamiętaj, że sum jest wartością niezmienną i jej wartość zawsze będzie typu (x: Int, y: Int)Int.
Wywołaj funkcję sum z dowolnymi parametrami (jednak wciąż z zakresu typu Int), np. sum(2, 4).
scala> sum(2,4) res0: Int = 6Wywołanie funkcji to podanie jej nazwy z określeniem wartości parametrów wejściowych. W wyniku otrzymujesz nazwę wyniku - res0, jej typ po dwukropku - Int - oraz wartość po znaku równości - 6. Proste? Dokładnie! Zero magii (zakładając, że nie przespałaś kilku lekcji matematyki, na których było o funkcjach i sposobach ich wywołania).
Spróbuj wykonać funkcję z parametrem innego typu, np. String - ciągiem znaków między apostrofami.
scala> sum("b", "b") <console>:9: error: type mismatch; found : String("b") required: Int sum("b", "b") ^Otrzymałaś błąd niezgodności typów - <console>:9: error: type mismatch;. Oczywiście należało się tego spodziewać, bo jedynym typem wejściowym funkcji sum jest Int. Int nie jest String.
Zadanie: Napisz definicję funkcji sum(a: String, b: String) i wykonaj ją dla kilku wybranych par ciągów, np. sum("m", "n"). Co miałoby być wynikiem?
Brak komentarzy:
Prześlij komentarz