這篇文章主要講解了“如何使用Scala匹配模式檢查對象的內(nèi)容”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何使用Scala匹配模式檢查對象的內(nèi)容”吧!
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比文昌網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式文昌網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋文昌地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
讓我們來嘗試一次深度匹配,在我們的模式匹配中檢查對象的內(nèi)容。
//code-examples/Rounding/match-deep-script.scala
case class Person(name: String, age:Int)
val alice = new Person("Alice",25)
val bob = new Person("Bob",32)
val charlie = newPerson("Charlie", 32)
for (person <- List(alice, bob,charlie)) {
person match {
case Person("Alice", 25) => println("HiAlice!")
case Person("Bob", 32) => println("Hi Bob!")
case Person(name, age) => println("Who are you, " + age +" year-old person named " + name + "?")
}
}
從上面例子的輸出中我們可以看出,可憐的Charlie 被無視了:
?
1
2
3 HiAlice!
Hi Bob!
Who are you, 32 year-old person namedCharlie?
我們收線定義了一個(gè)case 類,一個(gè)特殊類型的類,現(xiàn)在,我們只需要知道,一個(gè)case 類允許精煉的簡單對象的構(gòu)造,以及一些預(yù)定義的方法。然后,我們的模式匹配通過檢查傳入的Person case 類的值來查找Alice 和Bob。Charlie 則直到最后那個(gè)饑不擇食的case 才被捕獲;盡管他和Bob 有一樣的年齡,但是我們同時(shí)也檢查了名字屬性。
我們后面會看到,這種類型的模式匹配和Actor 配合工作時(shí)會非常有用。Case 類經(jīng)常會被作為消息發(fā)送到Actor,對一個(gè)對象的內(nèi)容進(jìn)行深度模式匹配是“分析”這些消息的方便方式。
感謝各位的閱讀,以上就是“如何使用Scala匹配模式檢查對象的內(nèi)容”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何使用Scala匹配模式檢查對象的內(nèi)容這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!