2017-01-29 208 views
1

IM試圖理解Scala中的下面的高階函數,但需要對函數的參數進行一些說明。Scala中的高階函數

問題: -

  1. 是什麼在apply功能Int => String是什麼意思? v: Int表示參數v的類型爲Int
  2. [A](x: A)是什麼意思layout函數?

    object Demo { 
        def main(args: Array[String]) { 
        println(apply(layout, 10)) 
        } 
    
        def apply(f: Int => String, v: Int) = f(v) 
    
        def layout[A](x: A) = "[" + x.toString() + "]" 
    } 
    

回答

10

f: Int => String意味着fInt類型的一個參數和一個返回類型String

def layout[A](x: A)一個功能是指參數xA類型,它可以是任何類型的。下面是關於如何調用佈局的幾個例子:

layout[String]("abc") //returns "[abc]" 
layout[Int](123) //returns "[123]" 

main運行時,它會調用applylayout功能和參數10.這將輸出"[10]"