模式匹配case class

2021-08-28 02:03:10 字數 1347 閱讀 7757

// 正則匹配  

val pattern = "([0-9]+) ([a-z]+)".r;

"741258933 hadoop" match

輸出結果:

741258933:hadoop

def match_array(arr:any) =  arr match  

match_array(array(0))

match_array(array(0,1))

match_array(array(0,1,2,3,4,5))

match_array(array("one","two","three"))

輸出結果:

array:0

array:x=0,y=1

array:...

somethingelse

scala

的case class

使得對物件進行模式匹配變得非常方便,簡單的來說,

scala

的case class

就是在普通的類定義前加

case

這個關鍵字,然後你可以對這些類來模式匹配。

abstract class person  

case class student(age:int) extends person

case class worker(age:int,salary:double) extends person

case object shared extends person

/**

* 1、宣告case class 每個成員都會預設生成val,如age:int

* 2、每個case class 都會有伴生物件,每個伴生物件都會有自己case class的具體物件

*/

object case_class_object

caseops(student(19))

caseops(worker(19,4000))

caseops(shared)

val worker = worker(29,3000);

val worker2 = worker.copy(salary = 5000);

val worker3 = worker.copy(age = 31);

} }

輸出結果:

iam 19 years old

wow,igot 4000.0

noproperty...

case class 和 class的區別

case class 和class的區別 case classcalculator brand string,valmodel string 無需宣告val也可以宣告成員常量 valhp20b newcalculator hp 20b valhp30b calculator hp 30b defca...

關於用case class解析parquet的問題

今天review 的時候發現乙個問題,用case class去解析乙個parquet檔案,parquet檔案的schema如下 id string name string age string string 有四個屬性,按理說應該構造如下case class去解析 case class people...

shell之匹配模式和擴充套件匹配模式

首先說一下什麼是匹配模式,然後再介紹擴充套件匹配模式。匹配模式這個概念就算不知道,但是也都會使用這個功能找到匹配的檔案。例如 ls ab 找到所有以ab開頭的檔案。這就是利用了 可以匹配任意字串,包括空串。匹配模式是man bash中的pattern matching,星號的含義在上面講了。用來匹配...