儘管go中沒有封裝、繼承、多型這些概念,但可以通過別的方式實現這個特性:
*封裝:通過方法實現
*繼承:通過匿名字段實現
*多型:通過介面實現
package main
import "fmt"
type person struct
// 方法
func (p *person) display()
type stduent struct
// 在stduent中重寫person的display()方法,進行覆蓋person:display()
func (s *stduent) display()
func main() , 0001}
// 呼叫基類函式 ---跟其他語言比較的說法
s.person.display()
// 呼叫子類函式 ---跟其他語言比較的說法
s.display()
}
1 2Go語言安裝
go語言編譯器及輔助工具可用於 windows macos 和linux 等作業系統。推薦盡可能使用作業系統自帶的包管理器來安裝go語言的 二進位制發行包 如 windows go1.11.4.windows amd64.msi maxos go1.11.4.darwin amd64.pkg lin...
12 Go語言 反射詳解
1.反射定義 可以在執行時動態獲取變數的相關資訊。import reflect 官方對此有個非常簡明的介紹,兩句話耐人尋味 反射提供一種讓程式檢查自身結構的能力。再精確點的描述是 反射是一種檢查inte ce變數的底層型別和值的機制 反射是困惑的源泉 想深入了解反射,必須深入理解型別和介面概念。2....
12 Go語言基礎 通道 channel
說道通道 channel,不得不提go語言的併發程式設計模型 csp。go語言提倡,通過通訊來共享記憶體。goroutines 可以看做是go的乙個併發執行緒。基於系統執行緒。每啟動乙個goroutine的堆初始化占用是2 4k,可以擴大到1g。這也是go語言可以啟動成千上萬個goroutine的原...