12 Go物件導向

2021-09-29 08:58:08 字數 508 閱讀 4545

儘管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的原...