2017-01-29 154 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]"