您好,登錄后才能下訂單哦!
介紹
反射是元數據編程的一種形式,指的是程序獲得本身結構的一種能力。不同語言的反射模型實現不一樣,本文中的反射,僅僅指的是Go語言中的反射模型。
反射有兩個問題,在使用前需要三思:
Go的類型設計上有一些基本原則,理解這些基本原則會有助于你理解反射的本質:
nil != nil
了。static type
和concrete type
. 簡單來說 static type
是你在編碼是看見的類型,concrete type
是runtime系統看見的類型。concrete type
,而不是static type
. 因此,一個 reader變量如果它的concrete type也實現了write方法的話,它也可以被類型斷言為writer.interface{}
作為橋梁,因此遵循原則3. 例如,反射包.Kind方法返回的是concrete type
, 而不是static type
.多說無用,下面來看示例代碼
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。