Go語言也支持面向對象開發,不過和以往我們所使用的面向對象開發還是有不同,Go語言主張組合方式形成類的概念,在Go語言中,結構起到很大作用,如果用結構組合字段和方法,那么單純在源代碼中看,真的是費時費力,尤其看別人寫的代碼,舉例如下:
type rawConnection struct {
id DeviceID
name string
receiver Model
cr *countingReader
cw *countingWriter
awaiting map[int32]chan asyncResult
awaitingMut sync.Mutex
idxMut sync.Mutex // ensures serialization of Index calls
nextID int32
nextIDMut sync.Mutex
outbox chan asyncMessage
closed chan struct{}
once sync.Once
pool bufferPool
compression Compression
}
這個rawConnection是一個結構,同時它也定義了很多方法,如果僅僅在源代碼里面查看,真的讓你暈頭轉向,我剛才看rawConnection時候,看了半天,也沒能完整了解它,但是,當我打開Gogland的“Structure”時候,真的不得不表揚Gogland,做得太棒了,立即完整展現了rawConnection,包括它所有的字段和方法,讓我能夠快速完整了解rawConnection!!Gogland默認情況下,“Structure”好像並沒有打開,如果沒有打開,我們可以點擊頂部菜單打開:“View”->"Tools Windows"->"Structure",也可以通過快捷鍵“Alt+7”打開。

通過“Structure”查看rawConnection的整體結構,這個結構的全貌一覽無遺,太棒了!!

