有時候要表達一種類似於集合型別的元素,而元素本身的表示又是case class的例項,這時候就要用到巢狀
eg:書店中有很多書,很多書可以構成集合,而書本身用case class表達,集合也用case class表達。這時候就用巢狀。
package ce.scala.pp
//7abstract class item
case class book(description : string, price : double) extends item
case class bundle(description : string, price : double, item : item*) extends item
//item*的意思是:可以有若干個item型別的成員,可以是book,也可以是bundle,類似json的表達
object pattern_match_case_class_nested_30
caseclass_nested(bundle("111 special" , 30.0,
book("scala for the spark developer", 69.95),
bundle("hadoop", 40.0,
book("hive", 79.95),
book("hbase", 32.95))))
caseclass_nested(bundle("1212 special" , 35.0, book("spark for the impatient", 39.95)))
}}
注釋掉第二行,輸出:
the first description is scala for the spark developer
the first description is spark for the impatient
注釋掉第一行,輸出:
scala for the spark developer 69.95
spark for the impatient 39.95
Scala26模式匹配入門實戰詳解
內容 1 模式匹配分析 2 模式匹配中使用守衛 3 模式匹配中的變數使用 1 用data進行匹配,scala 中沒有使用 return 和break 也就是說 scala 更符合實際編碼的過程。val data 2 data match 2 以下的case i不可被改變 常量 val 其中使用常量i...
模式匹配 關於模式匹配的演算法實現2
參照我上篇部落格,只不過多了乙個識別率的演算法而已,還是參考歸併排序寫的,很簡單。上篇部落格位址 很多的解釋都在 裡面了,各位看看就明白了 author seen time 2015 09 20 include include include using namespace std struct p...
簡單模式匹配演算法 串的模式匹配
一 對乙個串中的某子串的定位操作稱為串的模式匹配 二 模式串 待定位的子串 三 基本思想 從主串中的第乙個位置起和模式串的第乙個字元開始比較 如果相等,則繼續比較後續字元 如果不等,則從主串的第二個字元起,重新用上一步的方法與模式串中的字元作比較 以此類推,直到比較完模式串的所有字元,則匹配成功,返...