第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go 的接口{}是否與 C 中的 void* 相同?

Go 的接口{}是否與 C 中的 void* 相同?

Go
溫溫醬 2021-07-09 18:00:28
由于類型變量interface{}可以有任何值,這是否意味著它本質上是一個通用指針,如 C 中的 void*?
查看完整描述

2 回答

?
臨摹微笑

TA貢獻1982條經(jīng)驗 獲得超2個贊

雖然 C 的void *指針和 Go 的interface{}變量共享可以存儲任意類型的屬性,但有一個很大的區(qū)別:Go 接口變量還存儲它們所持有的值的類型。

因此,雖然希望 C 程序員確保從void *指針到特定類型的任何強制轉換都是安全的,但 Go 運行時可以檢查任何類型斷言是否正確。

在接口變量中找到的類型信息還允許通過reflect包進行復雜的運行時自省,這對于普通void *指針是不可能的。



查看完整回答
反對 回復 2021-07-12
?
HUWWW

TA貢獻1874條經(jīng)驗 獲得超12個贊

我傾向于說“一點也不!”。但我承認它可能與“持有任何出現(xiàn)的東西”相同的目的。

  1. Aninterface {}不是指針,因此您無法取消引用它。

  2. 您可以將 avoid*強制轉換為任何類型,但類型斷言 aninterface {}可能會導致運行時恐慌。

  3. 確定 avoid*指向的實際類型很復雜(或不可能),但是包反射允許您為interface {}.

所以不行!interface {}是空接口,與void*C 中的a 無關,只有一個小例外,兩者都可能用于處理您不關心它的真實性質的任何事情。


查看完整回答
反對 回復 2021-07-12
  • 2 回答
  • 0 關注
  • 376 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號