亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Scala的案例類和類之間有什么區別?

Scala的案例類和類之間有什么區別?

繁花如伊 2019-09-18 10:44:37
我在谷歌搜索找到a case class和a 之間的差異class。每個人都提到當你想在類上進行模式匹配時,使用用例類。否則使用類并提及一些額外的額外津貼,如equals和hash code overriding。但這些是為什么應該使用案例類而不是類的唯一原因?我想在Scala中這個功能應該有一些非常重要的原因。有什么解釋或者是否有資源可以從中了解有關Scala案例類的更多信息?
查看完整描述

3 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

案例類可以看作是普通的和不可變的數據保持對象,它們應該完全取決于它們的構造函數參數

這個功能概念允許我們

  • 使用緊湊的初始化語法(Node(1, Leaf(2), None))

  • 使用模式匹配來分解它們

  • 有隱含地定義的相等比較

結合繼承,case類用于模擬代數數據類型。

如果一個對象在內部執行有狀態計算或表現出其他類型的復雜行為,它應該是一個普通的類。


查看完整回答
反對 回復 2019-09-18
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

沒有人提到案例類也是Product這些方法的實例并因此繼承這些方法:


def productElement(n: Int): Any

def productArity: Int

def productIterator: Iterator[Any]

其中productArity返回的類的參數的數量,productElement(i)返回我個參數,并productIterator允許通過迭代他們。


查看完整回答
反對 回復 2019-09-18
  • 3 回答
  • 0 關注
  • 931 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號