Как получить доступ к параметру функции высшего порядка в scala

Я действительно новичок в Scala и пытаюсь его изучить.

Я не знаю, как получить доступ или использовать параметр функции более высокого порядка. Например:

def higherOrderFunc(f: Int => Boolean): String = {
  /* Logic to print parameter is here */ 
  "Hello"
}

val func = higherOrderFunc(x => x > 1)

Как я могу напечатать значение x, прежде чем я верну значение «Привет»


person kevind    schedule 30.05.2014    source источник
comment
x не имеет значения, пока вы не вызовете f, например, если вы вызовете f(5), тогда x будет равно 5, а возвращаемое значение будет равно 6 (это не логическое значение, поэтому я удивлен, если это скомпилируется)   -  person default.kramer    schedule 30.05.2014
comment
Спасибо за подсказку, я уже отредактировал свой дурацкий пример   -  person kevind    schedule 30.05.2014
comment
Что вы можете сделать, это: higherOrderFunc(x => {println(x); x > 1}). Но тогда вам также нужно позвонить f в higherOrderFunc.   -  person Kigyo    schedule 30.05.2014


Ответы (1)


Вы не можете. Аргумент не существует в этом контексте; его нужно будет передать в функцию более высокого порядка вместе с анонимной функцией.

person asthasr    schedule 30.05.2014