溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

web開發(fā)中靜態(tài)和動態(tài)語言怎么選擇

發(fā)布時(shí)間:2022-03-31 15:48:29 來源:億速云 閱讀:219 作者:iii 欄目:編程語言

這篇文章主要講解了“web開發(fā)中靜態(tài)和動態(tài)語言怎么選擇”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“web開發(fā)中靜態(tài)和動態(tài)語言怎么選擇”吧!

web開發(fā)中靜態(tài)和動態(tài)語言怎么選擇

動態(tài)型  VS  靜態(tài)型

動態(tài)語言是一種變量使用前不需要聲明的語言,如 Python、Ruby 和PHP,在動態(tài)語言中像下面這樣做是允許的。

num = 10

某種意義上來說,這卻是一把雙刃劍,因?yàn)閯討B(tài)語言的類型檢查是在程序運(yùn)行期間,代碼運(yùn)行前沒有任何辦法找出 bug。我知道你可以寫測試,但是你并不能測試任何事情。這里有一個(gè)雖然不重要的例子。

def get_first_problem(problems):      for problem in problems:          problam = problem + 1         return problam

現(xiàn)在如果你被一些嚴(yán)重的電子樂干擾著,一個(gè)縮進(jìn)的錯(cuò)誤很輕易的就忽略了,代碼弄完了然后部署到生產(chǎn)環(huán)境中,于是bug就接踵而來了。

記住,在生產(chǎn)環(huán)境中你是***能消滅bug的人。

靜態(tài)語言 :使用前變量需要聲明,編譯的時(shí)候需要類型檢查,包括Java、C、C++在內(nèi)的語言都是靜態(tài)語言。

static int awesomeNumber;  awesomeNumber = 10;

關(guān)于健壯性的增加和運(yùn)行時(shí)錯(cuò)誤機(jī)會的減少有很多的爭論,編譯器能捕獲一些在你編碼的時(shí)候產(chǎn)生的令人討厭的錯(cuò)誤,方法的契約是嚴(yán)格的,不好的地方就是沉重的樣板代碼。

弱類型 VS 強(qiáng)類型

弱類型和強(qiáng)類型經(jīng)常與動態(tài)語言和靜態(tài)語言混淆起來。弱類型語言會引起一些哲學(xué)性問題如數(shù)字2和字符”two“的相加,在弱類型語言中像這樣做是沒問題的。

a = 2 b = "2"    concatenate(a, b) // Returns "22"  add(a, b) // Returns 4

傳統(tǒng)的語言將嚴(yán)格限制各種事務(wù)的出現(xiàn),如強(qiáng)類型語言中字符與整型相加將導(dǎo)致錯(cuò)誤,如下:

>>> 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開發(fā)中靜態(tài)和動態(tài)語言怎么選擇”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對web開發(fā)中靜態(tài)和動態(tài)語言怎么選擇這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI