go語言之高階篇物件導向程式設計

2022-07-05 05:36:09 字數 841 閱讀 8778

1、物件導向程式設計

對於物件導向程式設計的支援go 語言設計得非常簡潔而優雅。因為, go語言並沒有沿襲傳統物件導向程式設計中的諸多概念,比如繼承(不支援繼承,儘管匿名欄位的記憶體布局和行為類似繼承,但它並不是繼承)、虛函式、建構函式和析構函式、隱藏的this指標等。

儘管go語言中沒有封裝、繼承、多型這些概念,但同樣通過別的方式實現這些特性:

封裝:通過方法實現

繼承:通過匿名字段實現

多型:通過介面實現

2、匿名組合和匿名字段初始化

示例:

package main

import "fmt"

type person struct

type student struct

func main() , 1, "bj"}

fmt.println("s1 = ", s1)

//自動推導型別

s2 := student, 1, "bj"}

"s2 = ", s2)

//%+v, 顯示更詳細

fmt.printf("s2 = %+v\n", s2)

//指定成員初始化,沒有初始化的常用自動賦值為0

s3 := student

fmt.printf("s3 = %+v\n", s3)

s4 := student, id: 1}

fmt.printf("s4 = %+v\n", s4)

}

執行結果:

s1 =   1 bj}

s2 = id:1 addr:bj}

s3 = id:1 addr:}

s4 = id:1 addr:}

go語言之高階篇建立goroutine協程

1 goroutine是什麼 goroutine是go並行設計的核心。goroutine說到底其實就是協程,但是它比執行緒更小,十幾個goroutine可能體現在底層就是五六個執行緒,go語言內部幫你實現了這些goroutine之間的記憶體共享。執行goroutine只需極少的棧記憶體 大概是4 5...

go語言之高階篇拷貝檔案案例

1 檔案案例 拷貝檔案 示例 package main import fmt io os func main srcfilename list 1 drcfilename list 1 if srcfilename drcfilename 唯讀方式開啟原始檔 sf,err1 os.open srcf...

go連線mysql Go語言之高階篇連線mysql

一 go連線mysql 1 mysql驅動 說明 sql.open 函式用來開啟乙個註冊過的資料庫驅動,go mysql driver中註冊了 mysql這個資料庫驅動,第二個引數是dns,它是go mysql driver定義的一些資料庫鏈結和配置資訊。或 在cmd中執行安裝命令 3 建立資料庫 ...