Scala模式与函数参数匹配

时间:2013-08-11 17:18:37

标签: scala functional-programming pattern-matching

我是斯卡拉的新手。我想了解下面的代码行: -

val word = "f"
val file = "resources/abc.dat"

val func: (String) => String = word match {
     case "f" => first
     case "s" => second
     case "t" => third
     case _ => default
}

def first(file: String) : String = {
     println("First" + file)
     "first"
}

def second(file: String) : String = {
     println("Second" + file)
     "second"
}

def default(file: String) : String = {
     println("Default" + file)
     "default"
}

到目前为止我所理解的是func,word与case匹配,并调用了特定的函数。但我不明白如何将参数传递给每个函数调用。

任何指针对我都有很大的帮助。

感谢。

1 个答案:

答案 0 :(得分:4)

不,你没有在模式匹配中调用函数,你只是返回一个函数,func的类型确实是(String) => String,你可以在String=>String中缩写。< / p>

然后您可以将其称为func("ABCDE")

有关Scala类型的简要说明,请参阅this