Golang介紹以及安裝

Go語言

  Google開源
  編譯形語言
  21世紀的C語言

Go語言的特色
  簡單易併發
  開發效率高
  執行性能好

Go語言應用的領域
  服務端開發
    日誌處理
    文件系統
    監控服務
  容器虛擬化
    Docker
    k8s
    Docker Swarm
  存儲
    etcd
    Tidb
    Groupcache
  Web開發
    net/http
    Gin
    Echo
  區塊鏈
    以太坊
    fabric


開發環境
  官網地址:
    https://golang.google.cn/dl/
    選擇對應版本 下載 安裝
  (我這裏是mac 因此使用brew下載)
    brew install go

  完成後使用 go env 查看版本


配置go路徑環境
  主要是GOROOT和GOPATH

  GOROOT:就是go的安裝環境
  GOPATH:做爲編譯後二進制的存放目的地和import包時的搜索路徑。其實說通俗點就是你的go項目工做目錄。一般狀況下GOPATH包含三個目錄:bin、pkg、src。

  src目錄下主要存放go的源文件

  pkg目錄存放編譯好的庫文件,主要是*.a文件;

  bin目錄主要存放可執行文件

  注意:千萬不要把GOPATH設置成go的安裝路徑,能夠本身在用戶目錄下建立一個目錄,例如mygo

  通常安裝好go以後,使用go env查看一下當前環境。此時顯示出來的GOROOT就是你使用brew安裝go的安裝目錄,這個路徑要記下來。接下來要在bash_profile文件中進行配置。

 

Golang /Go調試工具delve

  Windows or Linux
    go get github.com/derekparker/delve/cmd/dlv
  Mac使用brew下載
    brew install go-delve/delve/delve

     

IDE下載 Goland
  http://www.jetbrains.com/go/

  下載後激活正常使用

 

 

Go語言的項目結構
  -GOPATH
    -src //目錄下主要存放go的源文件
      -網站域名/公司級別倉庫域名
        - 做者/機構
          - 項目name
            - 模塊a
            - 模塊b
    -bin // 目錄主要存放可執行文件
    -pkg //目錄存放編譯好的庫文件,主要是*.a文件;

  編譯: 只須要編輯主文件便可 不須要編譯包
    cd /Project/pkg ## 在哪裏編譯 編譯後的文件就在那裏
    go build ../src/xxxx/xxx.go

    或指定編譯後存放的地址

    go build -o Project/pkg/name src/xxx/xxx.go ## -o 參數指定編譯後存放的位置 最後的/name 指的是編譯後生成的文件name 也能夠不指定

  *** 跨系統編譯
    Mac下編譯Linux和Windows平臺64位可執行程序須要設置
      Linux
        CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build;
      Windows
        CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build;

    Linux下編譯Mac和Windows平臺64位可執行程序
      Mac
        CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build;
      Windows
        CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build;
    Windows下編譯Mac和Linux平臺64位可執行程序
      Mac
        SET CGO_ENABLED=0 // 禁用CGO
        SET GOOS=darwin // 目標平臺設定
        SET GOARCH=amd64 // 64位系統
        go build
      Linux
        SET CGO_ENABLED=0
        SET GOOS=linux
        SET GOARCH=amd64
        go build

    編譯並移動至bin目錄
      go install

Go代碼結構

package main //導包 main可執行文件 若是更換其餘的name則不會執行 會生成一個.a文件供其餘程序引入調用
import(
// go全部的功能都靠包的引入
"fmt" // 輸出輸出模塊 
)
func main(){ //主函數
  fmt.Println("hello word") // Println 輸出至終端
}
 

 

運行

  IDE下
    右擊Run
  終端下
    cd至建立文件路徑下
      go run 文件name.go

 

Go強語言類型

  建立函數傳入參數以及返回值必需要指定類型例如
    # 補充 聲明的變量若是不使用會被強制刪除

func add(a int, b int // 定義參數類型 ) int //定義返回值類型 { 
var sum int // 定義變量類型
sum = a + b
return sum // 返回值
}

 

語言特性

  1.垃圾回收
    a.內存自動回收,不再須要開發人員管理內存
    b.開發人員專一業務時間,下降了心智負擔
    c.只須要new分配內存,不須要釋放
  2.自然併發
    a.從語言層面支持併發,很是簡單
    b.goroute,輕量級線程,建立成千上萬個goroute成爲可能
    c.基於CSP(Commuicating Sequential Process)模型實現

func main(){
  go fmt.Println("hello")
}

  3.channel
    a.管道,相似unix/linux中的pipe
    b.多個goroute之間經過channel進行通信
    c.支持任何類型

func main(){
    pip3:=make(chan int,3) // make開闢空間 長度爲3 且只能存int類型
    pipe <- 1
    pipe <- 2
}

  4.多返回值
    a.一個函數返回多個值

func calc(a int,b int)(int,int){ //(int,int) 定義返回值
    sum:= a+ b
    avg:= (a+b)/2
    return sum,avg
}

  補充: 解包到不須要的參數 使用 "_"接受則爲省略     res,_ = calc(1,3)     res = 4

相關文章
相關標籤/搜索