目前我正在學習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」來實現相同的目標。當你寫一個接受類型參數的方法時,你通常擁有可重用的代碼,你可以在編譯時保存類型信息。 –