您好,登錄后才能下訂單哦!
這篇文章主要講解了“web開發(fā)中靜態(tài)和動態(tài)語言怎么選擇”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“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)注!
免責(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)容。