Я новичок в Scala, и возможность передавать функции другим функциям довольно удобно - но могу ли я передать произвольную ссылку на функцию другому функция? Арность указанного функционального параметра будет фиксированной (при этом мне также любопытно, можно ли передать функцию с произвольной арностью). Я все время спотыкаюсь о типовых ошибках. Я пробовал использовать Any
, но, похоже, это не помогает.
Например, у меня есть код ниже:
class CodeRunner(val user_defined: (Int) => Unit) {
def run(input: Int) = {
user_defined(input)
}
}
def arbitrary_code(input: Int) = { println("Running with input " + input) }
val d1 = new CodeRunner(arbitrary_code)
d1.run(4)
И я получаю:
Running with input 4
Теперь допустим, что я хочу вместо этого передайте следующую функцию:
def arbitrary_code(input: String) = { println("Running with input " + input) }
Как изменить мой класс CodeRunner
для обработки обоих?