这里的答案是75.所以,在这个Scala程序中,为什么25乘以3?

时间:2017-07-17 14:34:13

标签: scala higher-order-functions

我刚学习Scala,在这个Scala程序中答案是75.为什么?为什么25乘以3?我无法理解那部分" println(fun(a))"

object MainObject 
    {  
       def main(args: Array[String]) = 
       {  
         functionExample(25, bhaskar)  // Passing a function as parameter  
       }  
        def functionExample(a:Int, fun:Int=>AnyVal):Unit=
        {  
            println(fun(a))            // 75
        }  
        def bhaskar(b:Int):Int = 
        {  
            b*3  

        }  
    }

1 个答案:

答案 0 :(得分:2)

println(fun(a))打印调用fun(a)的结果。当您致电functionExample(25, bhaskar)时,25abhaskarfunbhaskar获取Int并返回乘以3

因此,调用bhaskar(25)的结果是75。由于funbhaskara25fun(a)会产生75