這篇文章主要講解了“如何使用Scala匹配模式檢查對象的內容”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何使用Scala匹配模式檢查對象的內容”吧!
讓我們來嘗試一次深度匹配,在我們的模式匹配中檢查對象的內容。
//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?
我們收線定義了一個case 類,一個特殊類型的類,現在,我們只需要知道,一個case 類允許精煉的簡單對象的構造,以及一些預定義的方法。然后,我們的模式匹配通過檢查傳入的Person case 類的值來查找Alice 和Bob。Charlie 則直到最后那個饑不擇食的case 才被捕獲;盡管他和Bob 有一樣的年齡,但是我們同時也檢查了名字屬性。
我們后面會看到,這種類型的模式匹配和Actor 配合工作時會非常有用。Case 類經常會被作為消息發送到Actor,對一個對象的內容進行深度模式匹配是“分析”這些消息的方便方式。
感謝各位的閱讀,以上就是“如何使用Scala匹配模式檢查對象的內容”的內容了,經過本文的學習后,相信大家對如何使用Scala匹配模式檢查對象的內容這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。