Scala (2.9.2) では、アクセス時に他の値を提供する関数を作成しようとしています
() => Any
名前/カリー化ソリューションを介してこれをうまくやっていると思いました:
def byName(theValue : => Any)() : Any = theValue
val myHolder = byName(myValue)_
だから私のホルダーは正しいタイプです。ただし、このカリー化された関数を作成する過程で、名前によるパラメーターが評価されることがわかりました。代わりに次のようにすると、意図したとおりに機能します。
def byName(theValue : => Any) : Any = () => theValue
val myHolder = byName(myValue)
カリー化プロセスの一部は、最初のパラメーター リストを参照し、その評価をトリガーしていると結論付けています。誰かがそれを確認および/または説明できますか、または複数のパラメーターリストで名前パラメーターを使用することに関するガイドラインがあるかどうかを説明できますか?