Программирование на языке Scala/Синтаксис параметров методов/Ответы
Внешний вид
2.
def method(param: Char): Char = param.toUpper
"a".map(method) // автоматическое преобразование в соответствии с типом метода map
3.
def method(param: Char): Char = param.toUpper
def method2(param: Char): Char = param.toLower
val fun = method _ //Явное преобразование метода в анонимную функцию
val fun2 = method2 _
val tuple = (fun, fun2) // Анонимные функции являются сущностями первого класса и могут храниться в структурах данных
4.
def method3(param1: Char, param2: Int)(funParam: (Char, Char) => String): String = funParam(param1, param2.toChar)
val res = method3('a', 65)((p1, p2) => p1.toString + p2) // аргументом для параметра funParam задана некая анонимная функция
val res2 = method3('a', 65){ (p1, p2) =>
val str = p1.toString + p2
str.toLowerCase
} // аргументом для параметра funParam задан некий многострочный функциональный блок
5.
def method4(param1: Char)(param2: Int = param1)(param3: (Char, Int) = (param1, param2)): String =
param1.toString + param2.toString + param3._1.toString + param3._2.toString
6.
def add(param1: Int, param2: Int*): Int = param1 + param2.sum
7.
add(param2 = 3, param3 = 4, param5 = 6, param6 = 7, param1 = 2, param4 = 5) // Результат 5
add(2, 3, 4, 5, 6, 7) // Результат 5
<syntaxhighlight lang="scala"> add(1, param3 = 3) </syntaxhighlight