動(dòng)態(tài)語(yǔ)言、動(dòng)態(tài)類型語(yǔ)言、靜態(tài)類型語(yǔ)言、強(qiáng)類型語(yǔ)言、弱類型語(yǔ)言介紹
關(guān)于如題這幾個(gè)概念,大部分人應(yīng)該比較熟悉,但是我昏了好久,所以寫(xiě)下來(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ǔ)言。即寫(xiě)程序時(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ò)誤。
另外,由上邊看出“這門(mén)語(yǔ)言是不是動(dòng)態(tài)類型語(yǔ)言”與“這門(mén)語(yǔ)言是否類型安全”之間是完全沒(méi)有聯(lián)系的!
- 使弱類型的語(yǔ)言JavaScript變強(qiáng)勢(shì)
- 編程語(yǔ)言里的靜態(tài)、動(dòng)態(tài)、強(qiáng)類型、弱類型等概念介紹
- php判斷變量類型常用方法
- PHP 變量類型的強(qiáng)制轉(zhuǎn)換
- php 文件上傳后綴名與文件類型對(duì)照表(幾乎涵蓋所有文件)
- php 網(wǎng)頁(yè)播放器用來(lái)播放在線視頻的代碼(自動(dòng)判斷并選擇視頻文件類型)
- 淺析php數(shù)據(jù)類型轉(zhuǎn)換
- 使用php判斷瀏覽器的類型和語(yǔ)言的函數(shù)代碼
- PHP 八種基本的數(shù)據(jù)類型小結(jié)
- PHP弱類型的安全問(wèn)題詳細(xì)總結(jié)
相關(guān)文章
Python實(shí)現(xiàn)用戶登錄并且輸入錯(cuò)誤三次后鎖定該用戶
這篇文章主要介紹了Python實(shí)現(xiàn)用戶登錄并且輸入錯(cuò)誤三次后鎖定該用戶,文中通過(guò)c#代碼給大家補(bǔ)充介紹了密碼輸入三次錯(cuò)誤后鎖定用戶功能,需要的朋友可以參考下2020-01-01ChatGPT平替-?ChatGLM多用戶并行訪問(wèn)部署過(guò)程
這篇文章主要介紹了ChatGPT平替-?ChatGLM多用戶并行訪問(wèn)部署,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-055個(gè)Linux平臺(tái)程序員最愛(ài)的開(kāi)發(fā)工具匯總
這篇文章主要介紹了5個(gè)Linux平臺(tái)程序員最愛(ài)的開(kāi)發(fā)工具匯總,程序最重要的工具就是源碼編輯器了,或者是一個(gè)全能的IDE,本文就羅列了5個(gè)Linux平臺(tái)最常用的編輯給大家,需要的朋友可以參考下2014-09-09獲取鍵盤(pán)鍵的值 集合 方便監(jiān)控鍵盤(pán)事件
整理的比較全的鍵盤(pán)值的集合,以后大家在開(kāi)發(fā)過(guò)程中,可以直接拿來(lái)判斷。2009-08-08使用Git Bash向GitHub上傳本地項(xiàng)目
這篇文章介紹了使用Git Bash向GitHub上傳本地項(xiàng)目的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04Intellij idea2020永久破解,親測(cè)可用?。?!
隨著 IDEA 的 2020 版本的發(fā)布,新增和優(yōu)化了很多的功能,今天來(lái)講一講如何永久破解,親測(cè)可用,對(duì)idea2020永久破解 教程感興趣的朋友可以跟隨小編一起看看吧2020-05-05SVN與Git版本控制的優(yōu)缺點(diǎn)差異全面分析
這篇文章主要為大家介紹了SVN與Git版本控制的優(yōu)缺點(diǎn)差異全面分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04