關(guān)于如題這幾個(gè)概念,大部分人應(yīng)該比較熟悉,但是我昏了好久,所以寫下來(lái)加深印象。
1. 動(dòng)態(tài)語(yǔ)言
又叫動(dòng)態(tài)編程語(yǔ)言,是指程序在運(yùn)行時(shí)可以改變其結(jié)構(gòu):新的函數(shù)可以被引進(jìn),已有的函數(shù)可以被刪除等在結(jié)構(gòu)上的變化。比如眾所周知的ECMAScript(JavaScript)便是一個(gè)動(dòng)態(tài)語(yǔ)言。除此之外如Ruby、Python等也都屬于動(dòng)態(tài)語(yǔ)言,而C、C++等語(yǔ)言則不屬于動(dòng)態(tài)語(yǔ)言。
而其實(shí)我們平時(shí)說(shuō)的“動(dòng)態(tài)語(yǔ)言”應(yīng)該指的是“動(dòng)態(tài)類型語(yǔ)言”。至少我之前一直是這么認(rèn)為的。
2. 動(dòng)態(tài)類型語(yǔ)言
在運(yùn)行時(shí),確定類型的語(yǔ)言。
即編譯時(shí)與類型無(wú)關(guān)。一般在變量使用之前不需要聲明變量類型,而變量的類型通常是由被賦的值的類型決定。 如php、Python和Ruby。
3. 靜態(tài)烈性語(yǔ)言
與動(dòng)態(tài)類型語(yǔ)言正好相反,在編譯時(shí),便需要確定類型的語(yǔ)言。即寫程序時(shí)需要明確聲明變量類型。如C/C++、Java、C#等。
對(duì)于動(dòng)態(tài)語(yǔ)言與靜態(tài)語(yǔ)言的區(qū)分,套用一句流行的話就是:Static typing when possible, dynamic typing when needed。
4. 強(qiáng)類型語(yǔ)言
強(qiáng)制數(shù)據(jù)類型定義的語(yǔ)言。也就是說(shuō),一旦一個(gè)變量被指定了某個(gè)數(shù)據(jù)類型,如果不經(jīng)過(guò)強(qiáng)制轉(zhuǎn)換,那么它就永遠(yuǎn)是這個(gè)數(shù)據(jù)類型了。
強(qiáng)類型定義語(yǔ)言是類型安全的語(yǔ)言。
5. 弱類型定義語(yǔ)言
數(shù)據(jù)類型可以被忽略的語(yǔ)言。它與強(qiáng)類型定義語(yǔ)言相反, 一個(gè)變量可以賦不同數(shù)據(jù)類型的值。
強(qiáng)類型定義語(yǔ)言在速度上可能略遜色于弱類型定義語(yǔ)言,但是強(qiáng)類型定義語(yǔ)言帶來(lái)的嚴(yán)謹(jǐn)性能夠有效的避免許多錯(cuò)誤。
另外,由上邊看出“這門語(yǔ)言是不是動(dòng)態(tài)類型語(yǔ)言”與“這門語(yǔ)言是否類型安全”之間是完全沒有聯(lián)系的!
標(biāo)簽:桂林 南昌 鹽城 景德鎮(zhèn) 黔南 東莞 宣城 文山
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《動(dòng)態(tài)語(yǔ)言、動(dòng)態(tài)類型語(yǔ)言、靜態(tài)類型語(yǔ)言、強(qiáng)類型語(yǔ)言、弱類型語(yǔ)言介紹》,本文關(guān)鍵詞 動(dòng)態(tài),語(yǔ)言,類型,靜態(tài),強(qiáng),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。