Go-簡介
阿新 • • 發佈:2018-05-14
並發編程 class 編譯 IT 一個 tro face foo 關鍵字
Go簡介
Google開發,新的具有面向接口、函數式編程、並發編程特點的編譯性強類型通用編程語言
Go核心
1. 接口
2. 並發編程
3. 函數
Go-接口
package main import "fmt" // 定義了一個接口類型,吃和跑兩個方法 type function interface { eat (string) run () } // 定義狗這個結構體 type Dog struct { Name string Age int } // 吃方法 func (self *Dog) eat(food string) { fmt.Println(self.Name, "eat..ing", food) } // 跑方法 func (self *Dog) run() { fmt.Println(self.Name, self.Age, "run ..ing") } // 貓 type Cat struct { Skin string Name string } // 吃 func (self *Cat) eat(food string) { fmt.Println(self.Name, "eat ...ing", food) } // 跑 func (self *Cat) run() { fmt.Println(self.Name, self.Skin, "run ..ing") } func main() { dog := &Dog{ Name: "xiaoHua", Age: 18, } var dogInterface function = dog dogInterface.eat("banana") dogInterface.run() cat := &Cat{ Name: "xiaoXiao", Skin: "white", } var catInterface function = cat catInterface.eat("fish") catInterface.run() }
觀察發現,有以下特性
1. 接口只關心這個結構體是否實現接口中定義的方法
2. 結構體實現接口中所有方法,就認為實現了這個接口
3. 接口類型不關心對象是誰,只關心對象是否全部實現接口中的方法
Go-並發編程
關鍵字 go
相關數據結構 channel 進程之間通信,采用csp模型
Go-函數編程
在Go語言中,函數是第一等公民。Go中通過結構體封裝函數運行時候需要的數據,通過包封裝函數。
Go-簡介