對(duì)于動(dòng)態(tài)語言與靜態(tài)語言的區(qū)分,套用一句流行的話就是:Static typing when possible, dynamic typing when needed。
“動(dòng)”或“靜”,強(qiáng)調(diào)的是實(shí)施類型的時(shí)間,編譯里就要確定類型的是靜態(tài)類型,比如C/C++/JAVA/C#,運(yùn)行時(shí)才實(shí)施類型的則是動(dòng)態(tài)類型,比如VB/Python。
而“強(qiáng)”或“弱”剛強(qiáng)調(diào)實(shí)施類型的強(qiáng)度,強(qiáng)類型的語言,如C++等,變量的類型不可隨意轉(zhuǎn)換;而弱類型的語言,變量的類型可以隨需要任意轉(zhuǎn)換,而且通常都是隱式的。
靜態(tài)類型語言是指在編譯時(shí)變量的數(shù)據(jù)類型即可確定的語言,多數(shù)靜態(tài)類型語言要求在使用變量之前必須聲明數(shù)據(jù)類型,某些具有類型推導(dǎo)能力的現(xiàn)代語言可能能夠部分減輕這個(gè)要求.
動(dòng)態(tài)類型語言是在運(yùn)行時(shí)確定數(shù)據(jù)類型的語言。變量使用之前不需要類型聲明,通常變量的類型是被賦值的那個(gè)值的類型。
強(qiáng)類型語言是一旦變量的類型被確定,就不能轉(zhuǎn)化的語言。實(shí)際上所謂的貌似轉(zhuǎn)化,都是通過中間變量來達(dá)到,原本的變量的類型肯定是沒有變化的。
弱類型語言則反之,一個(gè)變量的類型是由其應(yīng)用上下文確定的。比如語言直接支持字符串和整數(shù)可以直接用 + 號(hào)搞定。當(dāng)然,在支持運(yùn)算符重載的強(qiáng)類型語言中也能通過外部實(shí)現(xiàn)的方式在形式上做到這一點(diǎn),不過這個(gè)是完全不一樣的內(nèi)涵
通常的說,java/python都算是強(qiáng)類型的,而VB/Perl/C都是弱類型的.
不過相比于動(dòng)態(tài)/靜態(tài)語言的分類,強(qiáng)類型/弱類型更多的是一個(gè)相對(duì)的概念。
標(biāo)簽:鹽城 宣城 桂林 黔南 景德鎮(zhèn) 東莞 南昌 文山
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《編程語言里的靜態(tài)、動(dòng)態(tài)、強(qiáng)類型、弱類型等概念介紹》,本文關(guān)鍵詞 編程語言,里,的,靜態(tài),動(dòng)態(tài),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。