1. 程式人生 > 其它 >什麼是強型別、弱型別、動態型別、靜態型別語言

什麼是強型別、弱型別、動態型別、靜態型別語言

強型別語言 

強制型別定義的語言,即一旦某一個變數被定義型別,如果不經強制轉換,那麼它永遠就死該資料型別。

強型別語言包括:Java、.net、Python、C++等語言。其中Python是動態語言,是強型別定義語言,是型別安全的語言,Java是靜態語言,是強型別定義語言,也是型別安全的語言。

強型別介面設計

  • 使用 feigh 設計強型別介面

弱型別語言 

弱型別定義的語言,某一個變數被定義型別,該變數可以根據環境變化自動。弱型別語言包括:VB,PHP,JavaScript等語言。其中VBScript是動態語言,是一種型別不安全的原因。

舉個栗子吧:

sumA=55,系統預設+字元連線符,將A轉化為字串型別;而sumB=0;系統認為-是算數運算子,從而將B轉化為int型別,所以sum為5-5=0;

優缺點 

強型別語言和弱型別原因其判斷的根本是是否會隱形進行語言型別轉變。
強型別原因在速度上可能略遜於弱型別語言,但是強型別定義語帶來的嚴謹性又避免了不必要的錯誤。

動態型別語言 

動態性語言是指在執行期間才去做資料型別檢查的語言,也就是說動態型別語言程式設計時,永遠不用給任何變數指定資料型別,該語言會在第一次賦值給變數時,在內部將資料型別記錄下來。Python和Ruby就是一種典型的動態型別語言,其他的各種指令碼語言如VBScript也多少屬於動態型別語言。

靜態型別語言 

靜態型別語言與動態類則剛好相反,它的資料型別在編譯期間檢查,也就是說在寫程式時要宣告所有變數的資料型別,C/C++是靜態型別語言的典型代表,其他靜態語言還有C#、Java等。

對於動態語言與靜態語言的區分,其根本在於判斷是在執行期間去做資料型別還是在編譯期間檢查。

 

https://blog.51cto.com/u_11440114/3005498