0
我一直在與Scala合作近一年,但偶爾偶爾遇到一段我不太瞭解的代碼。這次是這一次。我試圖查看「具有泛型參數類型的scala方法」上的文檔,但我仍然感到困惑。具有通用參數類型的Scala方法
def defaultCall[T](featureName : String) (block : => Option[T])(implicit name: String, list:Seq[String]) : Option[T] =
{
val value = block match {
case Some(n) => n match {
case i : Integer => /*-------Call another method----*/
case s : String => /*--------Call another method----*/
}
case _ => None
}
的方法是使用下面所示的代碼名爲:
var exValue = Some(10)
val intialization = defaultCall[Integer]("StringName"){exValue}
我沒有在上面瞭解什麼描述代碼是在defaultCall法「情況」的聲明。
我看到,當exValue有一個值並且不爲空時,代碼按預期工作。但如果我將exValue更改爲None,那麼我的代碼將進入「case _ = None」條件。我不明白爲什麼會發生這種情況,因爲在這裏完成的匹配是針對「整數」或「字符串」的「變量」。
不要你的意思是'無功exValue =部分(10)'? –
只是糾正它。謝謝你指出:) – Goldengirl
你最初匹配'塊'。如果'block'是'None',爲什麼不去'case _ = None'? – Gal