動態型別語言是指在執行期間才去做資料型別檢查的語言,也就是說,動態型別的語言是在第一次賦值給變數時,才確定變數型別;靜態型別的語言則是在編譯階段確定變數型別。
弱型別語言是指型別檢查不嚴格,容忍隱式型別轉換;強型別則是不容忍隱式型別轉換,如果發現型別錯誤就會中斷程式的執行。
區分靜態和動態的關鍵在於:在什麼時候進行型別檢查(而不是是否有變數型別宣告),在執行時則為動態,在編譯階段則為靜態
區分強弱型別的關鍵在於:是否容忍隱式型別轉換
動態語言和靜態語言 強型別語言和弱型別語言
1 動態語言和靜態語言 通常我們所說的動態語言 靜態語言是指動態型別語言和靜態型別語言。1 動態型別語言 動態型別語言是指在執行期間才去做資料型別檢查的語言,也就是說,在用動態型別的語言程式設計時,永遠也不用給任何變數指定資料型別,該語言會在你第一次賦值給變數時,在內部將資料型別記錄下來。pytho...
強型別與弱型別,靜態型別和動態型別
首先強弱是相對的。強型別 每個變數和物件都必須宣告型別,在編譯時確定好型別了,執行時不能更改。偏向於不容忍隱式型別轉換。譬如說haskell的int就不能變成double。弱型別 編譯時不確定型別,執行時根據語義確定是哪種型別。通俗地說,弱型別偏向於容忍隱式轉換,把不同型別的變數放在一起運算。靜態型...
弱型別 強型別 動態 靜態語言的區別
舉個例子 var a 5 var b 5 sumresult a b minresult a b 輸入sumresult的答案不是10,而是55,再次是將a的型別轉化為了字串,然後進行拼接。輸入minresult的答案是0,是將b的型別轉化為了數字,然後進行減法。強型別語言和弱型別語言區別 無論是強...