2012-12-08 16 views
6

在書中斯卡拉編程,第二版。,作者寫道:「在Scala中編寫類型測試和演員表比較冗長,這是故意的,因爲這不是鼓勵練習。」你通常最好使用模式匹配和類型模式。在其他地方,他們重申使用這些構造是「不良風格」。爲什麼類型檢查和類型轉換在Scala中被認爲是糟糕的風格?

我完全同意Scala的模式匹配語法好得多,但是它不是基本上用於類型檢查和類型轉換的語法糖嗎?或者我錯過了什麼?

+0

類型檢查並不總是糖,它也可以覆蓋空檢查,開關等。 –

回答

14

這是糖,但它是非常有益的糖。你可以進入真正的麻煩與類型由

  • 不檢查isInstanceOf調用asInstanceOf
  • 忘記泛型不知道他們的說法與類型isInstanceOf
  • 並非涵蓋所有情況下,該類型傳遞
  • 之前投下

模式匹配正確地處理了所有這些事情:如果實際上只有一個實例,則它會得到一個實例,它將對泛型進行警告,並在未完成匹配時發出警告。因此,在類型測試和強制轉換容易出錯的情況下,模式匹配是穩健的,並鼓勵良好的設計。

相關問題