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的整體結構,這個結構的全貌一覽無遺,太棒了!!