私は現在のチュートリアルを使用してスカラを学んでいます、と私は理解していない構文に遭遇している(と私の避難所は、答えを見つけることができます):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]を理解できません。
返品のタイプですか?
私の場合、スカラの関数の一般的な構文は次のとおりです。
def functionName ([list of parameters]) : [return type] = {
function body
return [expr]
}
は、Javaを知っている場合、これは彼らが '' とジェネリックメソッドに注釈を付ける方法とほぼ同じです。 – Thilo
この場合、役に立つものは何ですか?どうして 'def layout(x:Any)'だけではないのですか? – Thilo
@Thiloこの特定の例では、あまり意味がありません。 「Any」を使用して同じことを達成することができます。型パラメータを受け入れるメソッドを書くときには、通常、コンパイル時に型情報を保持することから得られる再利用可能なコードがあります。 –