1. 程式人生 > >強型別和弱型別的區別---非正確版

強型別和弱型別的區別---非正確版

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

弱型別:偏向於容忍隱式型別轉換。譬如說C語言的int可以變成double

動態語言和靜態語言

1.動態型別語言:是指在執行期間才去做資料型別檢查的語言。在用動態語言程式設計時,不用給變數指定資料型別,該語言會在你第一次賦值給變數時,在內部將資料型別記錄下來。Python和Ruby就是一種典型的動態型別語言;

2.靜態型別語言:與動態型別語言剛好相反,它的資料型別檢查發生在在編譯階段,也就是說在寫程式時要宣告變數的資料型別。C/C++、C#、Java都是靜態型別語言的典型代表。

強型別語言和弱型別語言

1.強型別語言:使之強制資料型別定義的語言。沒有強制型別轉化前,不允許兩種不同型別的變數相互操作。強型別定義語言是型別安全的語言,如Java、C# 和 Python,比如Java中“int i = 0.0;”是無法通過編譯的;

2.弱型別語言:資料型別可以被忽略的語言。與強型別語言相反, 一個變數可以賦不同資料型別的值,允許將一塊記憶體看做多種型別,比如直接將整型變數與字元變數相加。C/C++、PHP都是弱型別語言,比如C++中“int i = 0.0;”是可以編譯執行的;

注意,強型別語言在速度上略遜色於弱型別語言,使用弱型別語言可節省很多程式碼量,有更高的開發效率。而對於構建大型專案,使用強型別語言可能會比使用弱型別更加規範可靠。

另外,“這門語言是不是動態語言”與“這門語言是否型別安全”之間是完全沒有聯絡!

         http://blog.csdn.net/m_leonwang/article/details/8517583