您好,登錄后才能下訂單哦!
這篇文章主要講解了“web開發中靜態和動態語言怎么選擇”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“web開發中靜態和動態語言怎么選擇”吧!
動態型 VS 靜態型
動態語言是一種變量使用前不需要聲明的語言,如 Python、Ruby 和PHP,在動態語言中像下面這樣做是允許的。
num = 10
某種意義上來說,這卻是一把雙刃劍,因為動態語言的類型檢查是在程序運行期間,代碼運行前沒有任何辦法找出 bug。我知道你可以寫測試,但是你并不能測試任何事情。這里有一個雖然不重要的例子。
def get_first_problem(problems): for problem in problems: problam = problem + 1 return problam
現在如果你被一些嚴重的電子樂干擾著,一個縮進的錯誤很輕易的就忽略了,代碼弄完了然后部署到生產環境中,于是bug就接踵而來了。
記住,在生產環境中你是***能消滅bug的人。
靜態語言 :使用前變量需要聲明,編譯的時候需要類型檢查,包括Java、C、C++在內的語言都是靜態語言。
static int awesomeNumber; awesomeNumber = 10;
關于健壯性的增加和運行時錯誤機會的減少有很多的爭論,編譯器能捕獲一些在你編碼的時候產生的令人討厭的錯誤,方法的契約是嚴格的,不好的地方就是沉重的樣板代碼。
弱類型 VS 強類型
弱類型和強類型經常與動態語言和靜態語言混淆起來。弱類型語言會引起一些哲學性問題如數字2和字符”two“的相加,在弱類型語言中像這樣做是沒問題的。
a = 2 b = "2" concatenate(a, b) // Returns "22" add(a, b) // Returns 4
傳統的語言將嚴格限制各種事務的出現,如強類型語言中字符與整型相加將導致錯誤,如下:
>>> a = 10 >>> b = 'ten' >>> a + b Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for +: 'int' and 'str' >>>
感謝各位的閱讀,以上就是“web開發中靜態和動態語言怎么選擇”的內容了,經過本文的學習后,相信大家對web開發中靜態和動態語言怎么選擇這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。