強型別語言與弱型別語
簡單的說:強型別語言編譯質量更好,執行速度更快,但程式碼臃腫、死板。弱型別語言開發更敏捷,自由度更高,但效率略低。
強型別
比較嚴謹, 比較嚴格, 在保證資料的有效性來說, 會比較好一些, 也就比較穩定
但對初學者不大友善.
弱型別
易用, 上手快
但也經常出現一些問題, 如要呼叫一個方法時, 該變數不是物件, 或者, 該物件沒有這個方法, 也就是程式的可靠性會比較差.
PHP以現在的發展來看, 是兩者結合, 但還是偏重弱型別.
因為PHP是解釋型語言, 這也是沒辦法, 很多錯誤要執行到了才知道.
而編譯型語言很多是強型別語言, 從編譯的時候就知道哪裡資料有問題了.
強型別適合編譯,而且編譯出來的程式碼執行效率高。弱型別適合書寫,當你用強型別語言寫10行程式碼才能完成一個功能時,用弱型別語言可能1行就搞定了,所以開發效率更高。說弱型別語言開發的程式不穩定是沒有根據的,而且很多事實證明,弱型別語言開發的程式比強型別語言開發的程式更穩定(指相同水平的程式設計師開發的程式,不是拿菜鳥程式跟高手程式比),因為用弱型別編寫的一個功能所需的程式碼量要遠遠少於強型別語言編寫的程式碼量,所以出錯的機會更小。
相關推薦
強型別語言與弱型別語
簡單的說:強型別語言編譯質量更好,執行速度更快,但程式碼臃腫、死板。弱型別語言開發更敏捷,自由度更高,但效率略低。 強型別 比較嚴謹, 比較嚴格, 在保證資料的有效性來說, 會比較好一些, 也就比較穩定 但對初學者不大友善. 弱型別 易用, 上手快 但也經常出現一些問
python是強型別語言還是弱型別語言
Python屬於強型別的動態指令碼語言 強型別:不予許不同型別相加 動態:不使用顯示資料宣告型別,且確定一個變數的型別是第一次給他賦值的時候 指令碼語言:一般也是解釋性語言,裕興程式碼只需要一個直譯器,不需要編譯
強型別語言和弱型別語言
編譯型和解釋型 我們先看看編譯型,其實它和組合語言是一樣的:也是有一個負責翻譯的程式來對我們的原始碼進行轉換,生成相對應的可執行程式碼。這個過程說得專業一點,就稱為編譯(Compile),而負責編譯的程式自然就稱為編譯器(Compiler)。如果我們寫的程式程式碼都包含在
動態語言,靜態語言,強型別語言,弱型別語言的區別
靜態語言 靜態語言是在編譯時期就檢查資料型別的,所以必須在宣告變數的時候指定資料型別,否則編譯會不通過。例如C/C++,Java等 動態語言 動態語言是在執行時期才檢查資料型別的,所以在宣告變數的時候可以先不指定資料型別,因為在執行期間變數的資料型別是可變
弱型別語言與強語言型別
弱型別語言允許將一塊記憶體看做多種型別。比如直接將整型變數與字元變數相加。C and C++ 是靜態語言,也是弱型別語言;Perl and PHP 是動態語言,但也是弱型別語言。強型別語言在沒有強制型別轉化前,不允許兩種不同型別的變數相互操作。Java、C# 和 Python
動態語言、靜態語言、強型別定義語言和弱型別定義語言區別
呵~~(冷笑) 第一次接觸pythod,是一個朋友告知我它是一種弱型別語言,不用規定變數型別,於是”python=弱型別“ 的概念在我腦海紮根,並且深信不疑!! 然後每每和別人談起pythod時,我就會以資深口吻”哦,pythod啊,它是一種弱型別語言“開頭~~
c# 中的泛型以及強型別與弱型別
一直說C#是強型別語言,通俗地講,便是指C#中的“變數”在開發時其型別便是明確的:String便是String,Int32就是Int32。強型別的語言有以下幾點好處: 1.能夠享受程式碼提示功能 2.能夠獲得重構工具的支援 3.能夠在編譯期發現更多錯誤 與強型別相對的就
編譯型與解釋型、動態語言與靜態語言、強類型語言與弱類型語言的區別
動態語言 動態 java語言 不同 編譯型 效率 編譯過程 .exe 檢查 (一)編譯型語言和解釋型語言 首先我們區分這樣一個概念,編譯型語言和解釋型語言。我們編程用的都是高級型語言(寫匯編和機器語言的除外),計算機只理解和運行機器語言,所以必須把高級語言翻譯成機器語言
Python:動態語言與鴨子型別
今天來說說程式語言中的動態型別語言與鴨子型別,維基百科對動態語言的定義: 動態程式語言是一類在執行時可以改變其結構的語言:例如新的函式、物件、甚至程式碼可以被引進,已有的函式可以被刪除或是其他結構上的變化。動態語言目前非常具有活力如PHP、Ruby、Python 都屬於動態語言,而C、C+
編譯型語言、解釋型語言、靜態型別語言、動態型別語言概念與區別
最近在研究Python和Erlang。反覆提到動態型別語言、動態語言、解釋型語言這些概念。這些概念很生澀,在這裡做一個總結。 編譯型語言和解釋型語言 1、編譯型語言 需通過編譯器(compiler)將原始碼編譯成機器碼,之後才能執行的語言。一般需經過編譯(compile)、連結(linker)這兩個
c語言格式輸出剖析——用%d輸出float型別資料與int型別%f格式輸出
C語言學習實踐 摘要 本文將從C語言變數的本質,不同型別變數在記憶體中的儲存方式,型別強制轉換,格式輸出4個方面闡述C語言初學階段的一些問題。 關鍵詞:記憶體儲存,型別強制轉換,反彙編 1. 變數 變數來源於數學,是計算機語言中能儲存計算結果或能表示值抽象
自動型別轉換與強制型別轉換
java基本資料型別之間存在自動型別轉換與強制型別轉換兩種轉換方法。 型別從低到高:byte->char->short->int->long->float->double,如果
String型別數值與Long型別數值比較是否相等
1.情景再現: 有個兩表,假如分別叫表A、表B,它們都有一個欄位存放著使用者id。 現在用beanA和beanB來分別來對應表A和表B。 然後就判斷這連個id欄位是否相等,相等則進一步處理。 2.bug出現了 比較兩個id是否相等的虛擬碼如下: if (beadA
Java 位元組陣列型別(byte[])與int型別互轉
程式碼如下: public class CommonUtils { //高位在前,低位在後 public static byte[] int2bytes(int num){ byte[] result = new b
強大數定律與弱大數定律的圖示詳解
程式碼來自:https://stats.stackexchange.com/questions/2230/convergence-in-probability-vs-almost-sure-convergence?noredirect=1&lq=1該連結中,下面是強大
快學Scala學習筆記及習題解答(17-18型別引數與高階型別)
本文Scala使用的版本是2.11.8 第17章 型別引數 17.1 泛型 泛型類 class Pair[T, S](val first: T, val second: S) // 例項化 val p = new Pair(42, "Str
java中String型別資料與Date型別資料相互轉換
//實體類 public class Bean { public int id; public String name; public Date date; public int getId() { return id; } public void se
java自動型別轉換與強制型別轉換
自動型別轉換就是自發的進行,你可以從輸出的結果看出,外表是看不出來的。我們知道資料型別有很多種,大小也不一樣,就像水桶似的,有1升的,2升的,4升的,自動型別轉換就相當於把小的水桶裡面的水裝到大的裡面去。比如 int a = 10; double b = a;
程式語言弱型別、強型別、動態型別、靜態型別語言的區別
將知識點分門別類可以更好的記憶,程式語言也是,同類型的語言之間也可以相互印證,更全面的理解。 下面轉自知乎。 基礎概念 Program Errorstrapped errors。直譯器或編譯器不能處理的錯誤。導致程式終止執行,如除0,Java中陣列越界訪問untrapped
弱型別、強型別、動態型別、靜態型別語言的區別是什麼?
https://www.zhihu.com/question/19918532 型別系統的一些概念,眾說紛紜,使用上也比較亂。有些東西,甚至不好嚴格定義。以下算學術界的一種相對“嚴格”的說法。 1. 先定義一些基礎概念 Program Errors trapped err