1、物件導向程式設計
對於物件導向程式設計的支援go 語言設計得非常簡潔而優雅。因為, go語言並沒有沿襲傳統物件導向程式設計中的諸多概念,比如繼承(不支援繼承,儘管匿名欄位的記憶體布局和行為類似繼承,但它並不是繼承)、虛函式、建構函式和析構函式、隱藏的this指標等。
儘管go語言中沒有封裝、繼承、多型這些概念,但同樣通過別的方式實現這些特性:
封裝:通過方法實現
繼承:通過匿名字段實現
多型:通過介面實現
2、匿名組合和匿名字段初始化
示例:
package mainimport "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 建立資料庫 ...