1) 靜態類型語言
靜態類型指的是在創建份數據(變量、參數、返回值等)時需要顯式指明該數據的類型。通常情況下,這些數據的類型旦被定義,在程序的整個生命周期也不再改變。
2) 動態類型語言
動態類型的編程語言在創建數據時往往不需要指明該數據的類型,而且數據的類型也會隨著值的改變而改變,給數據賦予不同的值,數據將得到不同的類型。
對于靜態類型語言,我們需要預明確地告訴編譯器要處理的數據的類型,這樣在程序部署之前就能發現代碼中的錯誤或者疏忽。比如我們將個變量定義為整數,將另個變量定義為字符串,如果我們嘗試將兩個變量相加,那么編譯器在編譯期間可能就會捕獲這種語法錯誤,并且不會讓我們完成程序的構建。


3)強類型語言
強類型語言的典型特征,它們不會處理與類型定義明顯矛盾的運算,而是把它標記為個問題,并作為錯誤拋出。通常人們認為 C/C++、Java、C#、Python、Go 都是強類型語言,它們都不允許上述代碼中的行為。
4)弱類型語言
和強類型語言不樣,當我們執行些與類型定義不匹配的運算時,弱類型語言嘗試提供幫助,它可能會臨時轉換值的類型,讓它當前運算。
正如前面提到的,人們經常混淆靜態/動態類型和強/弱類型的概念,傾向于將靜態類型等同于強類型,將動態類型等同于弱類型,實際上這是不對的。
強/弱類型指的是編程語言如何處理運算過程中的值。當值的類型不運算規則時,編程語言究竟是做出些猜測,臨時轉換值的類型以幫助人們解決問題,還是停止運行,提醒人們不應該這樣做?
魯公網安備37010202000892號