大資料知識之Scala模式匹配和樣例類以及高階性質

2021-12-30 10:54:18 字數 1311 閱讀 9008

scala中最大的強大的機制是模式匹配的機制。可以應用到很多場合:如switch語句、型別檢查等。並且scala還提供了樣例類,對模式匹配進行了優化,可以快速進行匹配

package cn.edu.hust.cases

import scala.util.random

object stringdemo

println("hello")

}}package cn.edu.hust.cases

import scala.util.random

object typedemo

}}package cn.edu.hust.cases

object arraymatch extends app

val list=list(1,2,3)

list match

val t=(1,26,9)

t match

}在scala中樣例類是一中特殊的類,可用於模式匹配。case class是多例的,後面要跟構造引數,case object是單例的

package cn.edu.hust.cases

import scala.util.random

//樣例類

case class person(name:string,age:int)

//樣例類

case class life(time:int)

//樣例物件

case object money

object partical extends app

}在scala中option型別樣例類用來表示可能存在或也可能不存在的值(option的子類有some和none)。some包裝了某個值,none表示沒有值。

package cn.edu.hust.option

object optiondemo extends app

println(m)

//還有乙個更好的方法那就是使用下列方法

val m2=map.getorelse("c",0)

println(m2)

}被包在花括號內沒有match的一組case語句是乙個偏函式,它是partialfunction[a, b]的乙個例項,a代表引數型別,b代表返回型別,常用作輸入模式匹配。

package cn.edu.hust.partical

class particalfunctiondemo

//這是乙個普通的函式,裡面有模式匹配

def func2(num:string):int=num match

}object particalfunctiondemo extends app

scala學習之模式匹配

scala中有乙個灰常強大的東西,叫做模式匹配。可以理解為switch,只是比它更加強大。var sign 1 val ch char 模式匹配 更好用的switch ch match和switch不同的是,沒乙個匹配條件後面,不需要break 想到當年寫switch,忘記break的痛苦經歷 不會...

Scala模式匹配

1.常量匹配 def constantmatch x int string x match def constantmathtest 輸出結果 one many2.列表匹配 def sequencematch x list int string x match def sequencemathtes...

scala模式匹配

這是scala中最有用的部分之一。匹配值val times 1 times match 使用守衛進行匹配 times match 注意我們是怎樣將值賦給變數 i 的。在最後一行指令中的 是乙個萬用字元 它保證了我們可以處理所有的情況。否則當傳進乙個不能被匹配的數字的時候,你將獲得乙個執行時錯誤。我們...