學(xué)習過(guò)編程語言的都(dōu)知道(dào),語言在我們日常的工作中分爲:“靜态語言”“動态語言”“強類型語言”和“弱類型語言”這(zhè)些概念,靜态語言與動态語言是咱們比較常見的,也是大家經(jīng)常放在起(qǐ)提及的,好(hǎo)似他們是同維度的出現的,但是其他的語言我們不是很懂,這(zhè)個時候小編爲大家精心查閱了很多的整理,來解開(kāi)大家的迷惑:
1) 靜态類型語言
靜态類型指的是在創建份數據(變量、參數、返回值等)時需要顯式指明該數據的類型。通常情況下,這(zhè)些數據的類型旦被定義,在程序的整個生命周期也不再改變。
2) 動态類型語言
動态類型的編程語言在創建數據時往往不需要指明該數據的類型,而且數據的類型也會随着值的改變而改變,給數據賦予不同的值,數據將(jiāng)得到不同的類型。
對(duì)于靜态類型語言,我們需要預明确地告訴編譯器要處理的數據的類型,這(zhè)樣在程序部署之前就能(néng)發(fā)現代碼中的錯誤或者疏忽。比如我們將(jiāng)個變量定義爲整數,將(jiāng)另個變量定義爲字符串,如果我們嘗試將(jiāng)兩(liǎng)個變量相加,那麼(me)編譯器在編譯期間可能(néng)就會捕獲這(zhè)種(zhǒng)語法錯誤,并且不會讓我們完成(chéng)程序的構建。
3)強類型語言
強類型語言的典型特征,它們不會處理與類型定義明顯矛盾的運算,而是把它标記爲個問題,并作爲錯誤抛出。通常人們認爲 C/C++、Java、C#、Python、Go 都(dōu)是強類型語言,它們都(dōu)不允許上述代碼中的行爲。
4)弱類型語言
和強類型語言不樣,當我們執行些與類型定義不匹配的運算時,弱類型語言嘗試提供幫助,它可能(néng)會臨時轉換值的類型,讓它當前運算。
正如前面(miàn)提到的,人們經(jīng)常混淆靜态/動态類型和強/弱類型的概念,傾向(xiàng)于將(jiāng)靜态類型等同于強類型,將(jiāng)動态類型等同于弱類型,實際上這(zhè)是不對(duì)的。
強/弱類型指的是編程語言如何處理運算過(guò)程中的值。當值的類型不運算規則時,編程語言究竟是做出些猜測,臨時轉換值的類型以幫助人們解決問題,還(hái)是停止運行,提醒人們不應該這(zhè)樣做?