類型系統(tǒng)
所謂類型其實就是對表示信息的值進行的細粒度的區(qū)分。
在類型系統(tǒng)中,一切皆類型。基于類型定義的一系列組合,運算,和轉(zhuǎn)換等方法,可以看作類型的行為。
類型系統(tǒng)的作用
1.排查錯誤,很多編程語言都會在編譯期或運行期進行類型檢查,以排查違規(guī)行為,保證程序正確執(zhí)行。
2.抽象
3.優(yōu)化效率
4.類型安全:
- 類型安全的語言可以避免類型間的無效計算。
- 類型安全的語言可以保證內(nèi)存安全。
- 類型安全的語言可以避免語義上的邏輯錯誤。
類型系統(tǒng)的分類
- 靜態(tài)類型,在編譯期進行類型檢查的語言屬于靜態(tài)類型
-動態(tài)類型,在運行期進行類型檢查的語言屬于動態(tài)類型
靜態(tài)類型的語言能在編譯期對代碼進行靜態(tài)分析,依靠的就是類型系統(tǒng)。
多態(tài)類型系統(tǒng)
如果一個類型系統(tǒng)允許一段代碼在不同的上下文中具有不通的類型,這樣的類型系統(tǒng)就叫做多態(tài)類型系統(tǒng)。
現(xiàn)代編程語言三種多態(tài)形式:
- 參數(shù)化多態(tài)-實際指泛型
- Ad-hoc多態(tài)-特定多態(tài),rust中的trait
- 子類型多態(tài) - java中的子類