W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
原文鏈接:https://gopl-zh.github.io/ch13/ch13-05.html
我們?cè)谇耙徽陆Y(jié)尾的時(shí)候,我們警告要謹(jǐn)慎使用reflect包。那些警告同樣適用于本章的unsafe包。
高級(jí)語(yǔ)言使得程序員不用再關(guān)心真正運(yùn)行程序的指令細(xì)節(jié),同時(shí)也不再需要關(guān)注許多如內(nèi)存布局之類的實(shí)現(xiàn)細(xì)節(jié)。因?yàn)楦呒?jí)語(yǔ)言這個(gè)絕緣的抽象層,我們可以編寫安全健壯的,并且可以運(yùn)行在不同操作系統(tǒng)上的具有高度可移植性的程序。
但是unsafe包,它讓程序員可以透過(guò)這個(gè)絕緣的抽象層直接使用一些必要的功能,雖然可能是為了獲得更好的性能。但是代價(jià)就是犧牲了可移植性和程序安全,因此使用unsafe包是一個(gè)危險(xiǎn)的行為。我們對(duì)何時(shí)以及如何使用unsafe包的建議和我們?cè)?1.5節(jié)提到的Knuth對(duì)過(guò)早優(yōu)化的建議類似。大多數(shù)Go程序員可能永遠(yuǎn)不會(huì)需要直接使用unsafe包。當(dāng)然,也永遠(yuǎn)都會(huì)有一些需要使用unsafe包實(shí)現(xiàn)會(huì)更簡(jiǎn)單的場(chǎng)景。如果確實(shí)認(rèn)為使用unsafe包是最理想的方式,那么應(yīng)該盡可能將它限制在較小的范圍,這樣其它代碼就可以忽略u(píng)nsafe的影響。
現(xiàn)在,趕緊將最后兩章拋入腦后吧。編寫一些實(shí)實(shí)在在的應(yīng)用是真理。請(qǐng)遠(yuǎn)離reflect和unsafe包,除非你確實(shí)需要它們。
最后,用Go快樂(lè)地編程。我們希望你能像我們一樣喜歡Go語(yǔ)言。
![]() | ![]() |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: