iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
自我挑戰組

連續30天 初學者介紹Scala語言系列 第 24

[Day 24]Scala Pattern Matching Part2

  • 分享至 

  • xImage
  •  
  • Constructor patterns
  • Sequence patterns
  • Tuple patterns
  • Typed patterns

今天繼續來介紹其餘的pattern matching

Constructor patterns(建構式模式)

Constuctor pattern讓我們可以比對建構式,把建構式放到match運算式裡的case語句。

case class Dog(name: String, age: Int)

def test(x: Any) = x match 
    case Dog("Tom", 4) => "Tom is four years old."
    case _ => " "

Sequence patterns(序列模式)

Sequence pattern讓我們可以依據List, Array, Vector來比對模式
底線符號(_)代表一個元素
_*代表0個或多個元素

def test(x: Any) = x match
    case List(1) => "1"
    case List(1, 2, 3) => "1 2 3"
    case List(1, 2, _) => "1 2 and the other"
    case List(1, _*) => "starts with 1, any number of elements"

Tuple patterns(元組模式)

可以比對元組

def Tupletest(x: Any) = 
    x match
        case (a, b, c) => "matched"
        case _ => ""

Typed patterns

def test(x: Any) = 
    x match
        case s: String => s"String: $s"
        case i: Int => s"Int: $i"

上一篇
[Day 23]Scala Pattern Matching
下一篇
[Day 25]Scala Pattern Matching Part3
系列文
連續30天 初學者介紹Scala語言30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言