目前我正在学习Scala使用教程,和我所遇到的语法我不明白(我的天堂没有找到答案):斯卡拉功能语法
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() + "]"
}
在
def layout[A](x: A) = "[" + x.toString() + "]"
我不明白布局之后和参数声明之前的[A]。
它是返回类型吗?
对我来说,scala中函数的一般语法如下:
def functionName ([list of parameters]) : [return type] = {
function body
return [expr]
}
如果你知道Java中,这大约相当于他们如何诠释与''泛型方法。 – Thilo
在这种情况下,它有什么用处吗?为什么不只是'def layout(x:Any)'? – Thilo
@Thilo在这个特别的例子中,这并不太有意义。人们可以使用“Any”来实现相同的目标。当你写一个接受类型参数的方法时,你通常拥有可重用的代码,你可以在编译时保存类型信息。 –