В Scala (2.9.2) Я пытаюсь создать функцию, которая предоставляет другое значение при доступе
() => Any
Я думал, что успешно делаю это через решение по имени/карри:
def byName(theValue : => Any)() : Any = theValue
val myHolder = byName(myValue)_
Итак, мой держатель имеет правильный тип. Однако я обнаружил, что в процессе создания этой карри-функции оценивается параметр name. Если я делаю следующее, то он работает по-своему:
def byName(theValue : => Any) : Any = () => theValue
val myHolder = byName(myValue)
Я заключаю, что часть процесса currying ссылается на первый список параметров и вызывает его оценку. Может ли кто-нибудь подтвердить это и/или объяснить, почему или если существуют какие-либо рекомендации по использованию параметров имени с несколькими списками параметров?