類型綁定
在程序中引用一個變量前,變量名 必須被 綁定 到一種數據類型上。如 名字 abc 得知道它是語言中的基本類型(整型數字、浮點數字、布爾、字符串)或對象類型(內置類、自定義類)。根據 綁定時間 的早晚分為靜態類型綁定和動態類型綁定。
一、靜態類型綁定
顯示聲明和隱式聲明(JS等除外)都產生對類型的靜態綁定。
二、動態類型綁定
動態類型綁定時,變量的類型不是由聲明語句來說明的,也不是像Fortain中通過名字的拼法來確定。而是通過賦值語句給變量賦值時,變量才與類型綁定的。與靜態類型綁定不同,動態類型綁定給程序設計帶來了極大的靈活性。如使用動態類型綁定的語言很容易寫出一個通用程序。
如求兩個數的和
// JavaScript function sum(x,y){ return x+y; } // Java int sum(int x, int y){ return x + y; }
JavaScript是動態類型綁定的,可以傳整數型,小數型甚至字符串。但Java中只能傳整數卻不能是小數。又如Javascript中,先將一個數組賦值給變量,后又將數字賦值給該變量。
list = [11,22,33]; list = 5;
這不會出錯。PHP 也是動態類型綁定的。動態類型綁定有兩個缺點
1,程序不可靠,相對于靜態類型綁定的編譯器而言,它發現錯誤的能力較弱。
2,代價較高,類型檢測必須到運行時。
最后,具有變量動態類型綁定的語言一般采用單純的解釋期而非編譯器。
全站熱搜