亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

靜態類型化和動態類型化語言之間有什么區別?

靜態類型化和動態類型化語言之間有什么區別?

靜態類型化和動態類型化語言之間有什么區別?我聽說很多新的編程語言都是動態類型的,但是當我們說一種語言是動態類型的還是靜態類型的時候,這到底意味著什么呢?
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

靜態類型語言

如果在編譯時知道變量的類型,則會靜態地輸入語言。對于某些語言,這意味著程序員必須指定每個變量的類型(例如:Java、C、C+);其他語言提供某種形式的類型推理,類型系統推導變量類型的能力(例如:OCaml、Haskell、Scala、Kotlin)

這里的主要優點是編譯器可以完成所有類型的檢查,因此在非常早期階段就捕獲了許多瑣碎的bug。

例子:C,C+,Java,Rust,Go,Scala

動態類型語言

如果類型與運行時值相關聯,而不是命名變量/字段/等,則該語言是動態類型的。這意味著作為程序員,您可以更快地編寫,因為您不必每次指定類型(除非使用靜態類型語言類型推理).

例子:Perl,Ruby,Python,PHP,JavaScript

大多數腳本語言都有這個特性,因為無論如何都沒有編譯器可以進行靜態類型檢查,但是您可能會發現自己在搜索一個錯誤,這是因為解釋器誤解了變量的類型。幸運的是,腳本往往很小,所以bug沒有那么多地方可以隱藏。

大多數動態類型語言確實允許您提供類型信息,但不需要它。目前正在開發的一種語言,流氓,采用混合方法,允許在函數中進行動態類型,但對函數簽名強制靜態類型。


查看完整回答
反對 回復 2019-06-19
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

靜態類型化編程語言進行類型檢查(即驗證和強制執行類型約束的過程)編譯時相對于運行時間.

動態類型編程語言在運行時間相對于編譯時.


查看完整回答
反對 回復 2019-06-19
  • 3 回答
  • 0 關注
  • 1041 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號