2016-06-22 4 views
-4

これらのタイプのいくつかは、このコードとオペレータ使用タイプや、ここで使用することができる「=>」演算子や他のオペレータ

def times [A](f: =>A): Unit={ 
def loop(current: Int): Unit= 
    if(current > 0){ 
     f 
    loop(current - 1) 
    } 
loop(x) 
} 
+3

これは演算子ではありません。 「by-name parameters」を検索します。 –

答えて

1
def times [A](f: =>A): Unit={ // f is call-by-name argument 
def loop(current: Int): Unit // nested function inside of function types 

スタンドの下に私を助けることができる。このコードは、私が期待fx回(実行この変数はあなたのコードで定義されます)。基本的にfは(x)回実行される関数です。 名前による呼び出しの詳細についてはCall by name vs call by value in Scala, clarification needed