2 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
Go 中的類型系統(tǒng)旨在防止與指針相關(guān)的內(nèi)存錯(cuò)誤。這允許程序員有足夠的控制權(quán)來(lái)操作內(nèi)存中的對(duì)象,同時(shí)允許垃圾收集器頂部警察喜怒無(wú)常的繁重工作。
如果您需要手動(dòng)存儲(chǔ)和轉(zhuǎn)換指針類型,您可以使用unsafe 包。

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
這可能對(duì)所有指針類型僅使用一種類型嗎?
是的,這幾乎就是 C 的工作方式。不幸的是,這使語(yǔ)言變得危險(xiǎn)。假設(shè)您有一個(gè) 10 字節(jié)的數(shù)組。如果您只是傳遞指針,其他代碼將不知道可以安全訪問多少字節(jié)。這會(huì)導(dǎo)致各種緩沖區(qū)溢出錯(cuò)誤。(即心臟出血)
在 Go 中,它們的指針知道它所指向的事物的類型,因此它可以防止您的代碼一直出現(xiàn)緩沖區(qū)溢出問題。
你可以做你想做的事,但只能使用 Unsafe 包。顧名思義,這是一件非常危險(xiǎn)的事情。
也許如果你發(fā)布你真正想做的事情,人們可以幫助你。使用不安全指針并不是編寫高性能代碼的唯一方法。
- 2 回答
- 0 關(guān)注
- 169 瀏覽
添加回答
舉報(bào)