1. 程式人生 > >Go-簡介

Go-簡介

並發編程 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-簡介