1. 程式人生 > >Swift和OC,是編譯型語言、解釋性語言、執行時語言?

Swift和OC,是編譯型語言、解釋性語言、執行時語言?

首先需要明確的一點是,什麼是編譯型語言和解釋性語言

編譯型語言,就是在其執行過程中需要先將其經過編譯成機器碼來給計算機識別的,其執行效率就會比較高這個是顯而易見的,常見比如:C、C++

而解釋型語言,是不用編譯這個過程的,只是在執行時通過相應的翻譯器(虛擬機器)逐行翻譯。這樣它的跨平臺性就會較好,因為可以直接通過編譯器編譯成需要的平臺上的語言,但是有一個問題就是:它每次執行都要講每行程式碼逐行解釋翻譯一遍。常見比如:Python、JS、PHP

由此可見,我們的OC和Swift都是需要先進行編譯後才能執行程式碼功能的,因此他們都是編譯型語言。

接著談的就是OC和swift的其中一個不同,那就是Swift它是一個動態型別語言,意思是他是在程式碼執行時才去做資料型別的檢查,使用了swift的童鞋應該都清除,swift中變數的型別宣告都是使用Var關鍵字的並不指定具體資料結構型別,這又衍生出一個型別,那就是弱型別語言,這個很好理解,型別比較弱嘛就是沒有強制規定。相對應的OC中變數的在宣告時候都要指定其型別,因此它就是相對動態型別語言反面的靜態型別語言,也是強型別語言

最後還要說明的就是執行時語言,由上文提到:編譯型語言是要經過 編譯--》執行,執行時語言就是在程式執行的時候才去呼叫該物件的方法,和決定其資料型別。而不是在編譯的時候進行

不知道這樣講,能不能清楚些,

歡迎辛辣點評