オブジェクトを返すメソッドをラップすることができる汎用ラッパー関数を作成しようとしています。 thisの質問に非常に似ています。私は以下を試した:Scala:ジェネリック型を返すラッパー関数
def wrapper_function[T](f: => T): T = {
println("Executing now");
val ret: T = f;
println("Execution finished");
ret
}
def multiply2(x: Int): Int = wrapper_function {
println("inside multiply2");
return x*2
}
しかし、私は何もラッパー関数内の関数呼び出しの後に実行されていることを観察している。具体的には、「実行終了」は印刷されません。
scala> val x = multiply2(4)
Executing now
inside multiply2
x: Int = 8
私はScalaの2.11.8
を使用しています私はここで何か間違ったことをやっていますか?これは困惑しており、私はいくつかの助けに感謝します。
、それは'から戻っています乗算2を全体として計算する。 'return x * 2'を' x * 2'だけに置き換えてください。 – Alec
'return'についての素晴らしいブログ記事:https://tpolecat.github.io/2014/05/09/return.html –