Scala/Методи
Метод, який повертає суму двох чисел
def add(x: Int, y: Int) = x + y
Метод який повертає більше з двох чисел
def max(x: Int, y: Int) = if (x > y) x else y
Повна форма запису: явно вказаний тип результату, код методу взято у фігурні дужки, що дозволило би писати у блоці більше одного виразу
def max(x: Int, y: Int): Int = {
if (x > y)
x
else
y
}
Починаючи з версії 2.8 Scala підтримує значення аргументів за умовчанням та іменовані аргументи.
Наступний метод бере корінь степеня y із числа x. якщо не вказати степінь використовується 2.
def root(x: Double, y: Double = 2) = Math.pow(x, 1/y)
val two = root(8,3)
val four = root(8)
Методи у Scala можуть бути вкладеними, вкладений метод бачить змінні зовнішньго. Зазвичай параметри до методу передаються за значенням (Call-by-Value) — значення аргументів обчислюється перед викликом методу і передаються до методу. Scala підтримує також передачу параметрів за назвою (Call-by-Name). При цьому в метод передається вираз, але обчислюється не при виклику методу, а при кожному зверненні до нього в тілі методу.