30 模式匹配高階實戰 巢狀的Case class

2021-08-07 14:33:23 字數 1040 閱讀 8301

有時候要表達一種類似於集合型別的元素,而元素本身的表示又是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...

簡單模式匹配演算法 串的模式匹配

一 對乙個串中的某子串的定位操作稱為串的模式匹配 二 模式串 待定位的子串 三 基本思想 從主串中的第乙個位置起和模式串的第乙個字元開始比較 如果相等,則繼續比較後續字元 如果不等,則從主串的第二個字元起,重新用上一步的方法與模式串中的字元作比較 以此類推,直到比較完模式串的所有字元,則匹配成功,返...