強型別與弱型別,靜態型別和動態型別

2021-10-01 02:49:29 字數 324 閱讀 4824

首先強弱是相對的。

強型別:

每個變數和物件都必須宣告型別,在編譯時確定好型別了,執行時不能更改。偏向於不容忍隱式型別轉換。譬如說haskell的int就不能變成double。

弱型別:

編譯時不確定型別,執行時根據語義確定是哪種型別。通俗地說,弱型別偏向於容忍隱式轉換,把不同型別的變數放在一起運算。

靜態型別:

編譯的時候就知道每乙個變數的型別,因為型別錯誤而不能做的事情是語法錯誤。

動態型別:

編譯的時候不知道每乙個變數的型別,因為型別錯誤而不能做的事情是執行時錯誤。譬如說你不能對乙個數字a寫a[10]當陣列用。

強型別,弱型別,靜態型別,動態型別的區別

型別系統的一些概念,眾說紛紜,使用上也比較亂。有些東西,甚至不好嚴格定義。以下算學術界的一種相對 嚴格 的說法。首先了解一下基本概念 有了上面的概念,再討論強 弱型別,靜態 動態型別 偏向於不容忍隱式型別轉換,弱型別相對于強型別來說型別檢查更不嚴格,比如說允許變數型別的隱式轉換,允許強制型別轉換等等...

弱型別 強型別 動態 靜態語言的區別

舉個例子 var a 5 var b 5 sumresult a b minresult a b 輸入sumresult的答案不是10,而是55,再次是將a的型別轉化為了字串,然後進行拼接。輸入minresult的答案是0,是將b的型別轉化為了數字,然後進行減法。強型別語言和弱型別語言區別 無論是強...

關於強型別和弱型別 動態語言和靜態語言的解釋

動態型別語言是指在執行期間才去做資料型別檢查的語言,也就是說,動態型別的語言是在第一次賦值給變數時,才確定變數型別 靜態型別的語言則是在編譯階段確定變數型別。弱型別語言是指型別檢查不嚴格,容忍隱式型別轉換 強型別則是不容忍隱式型別轉換,如果發現型別錯誤就會中斷程式的執行。區分靜態和動態的關鍵在於 在...