強、弱類型語言 and 動態、靜態類型語言

先上結論:

強類型:偏向於不容忍隱式類型轉換。譬如說 Haskell 的 int 就不能變成 double。

弱類型:偏向於容忍隱式類型轉換。譬如說 C/C++ 語言的 int 可以變成 double,指針可以完全繞過類型系統。

  弱類型相對於強類型來說類型檢查更不嚴格,比如說允許變量類型的隱式轉換,允許手動(顯式)強制類型轉換等等。強類型語言一般不允許這麼做。


靜態類型:編譯的時候就知道每一個變量的類型,因爲類型錯誤而不能做的事情是語法錯誤。

動態類型:編譯的時候不知道每一個變量的類型,因爲類型錯誤而不能做的事情是運行時錯誤。譬如說你不能對一個數字 a 寫 a[10] 當數組用。

  動態類型語言編程時,永遠不用給任何變量指定數據類型。該語言會在第一次賦值給變量時,在內部將數據類型記錄下來。靜態類型語言寫程序時要聲明所有變量的數據類型,相當於使用之前,首先要爲它們分配好內存空間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章