關於Gol語言的概覽


Golang

1. go語言概述

Go語言是在2009年11月10日 由Google開源的一門編程語言.號稱是"21世紀的C語言"

Go 語言(或稱 Golang)是雲計算時代的 C 語言。 Go 語言的誕生是爲了讓程序員有更高的
生產效率, Go 語言專門針對多處理器系統應用程序的編程進行了優化,使用 Go 編譯的程
序可以媲美 C 或 C++代碼的速度,而且更加安全、支持並行進程。

1.1 golang的語言特點

  • C語言中繼承了很多設計理念,如表達式語法,結構控制,基礎數據類型,傳值,指針

  • 開放源代碼 ,Go本身是用Go語言編寫的

  • 是靜態型和編譯型

  • 引入 的概念,用於組織程序結構

  • 自動垃圾回收,一般由Go運行時系統負責

  • 天然支持併發

    • 從語言層面就支持併發,使用很簡單

    • goroutine,協程,高效利用CPU

    • 基於CSP併發模型

    • 採用管道通信機制,通過管道channel 實現不同goroutine之間的相互通信

  • 函數可以多返回值

  • 新穎的slice 和defer語句引入

  • go編寫的程序可以直接編譯成機器碼,不依賴其他庫,以及跨平臺編譯

  • 內置強大的工具鏈

  • 豐富的標準庫, 特別是網絡庫很強大

  • 內嵌C代碼支持

  • 語法簡單,代碼風格強制統一

1.2 go語言適合做什麼

  1. 區塊鏈應用
  2. 服務器編程,如: 處理日誌,文件系統,數據打包,虛擬機處理
  3. 網絡編程 ,如API應用,web應用,下載應用
  4. 分佈式系統
  5. 雲平臺/雲服務後端開發
  6. 內存數據庫

1.4 go語言學習資料參考

1.4.1 網絡資料

Go語言中文網

Go語言中文文檔

Go語言標準庫中文文檔

Go語言聖經(中文版)

Go中國技術社區

Golang技術論壇

1.4.2 推薦書籍

《Go程序設計語言》

《Go語言學習筆記》

《Go併發編程實戰》

2. go程序是怎麼運行起來的?

2.1 GO語言的開發環境

  1. 無論是Windows 環境或者是Linux環境,亦或是Mac 環境都需要下載Go語言的 SDK ,下載地址如下 Go安裝包下載地址 ,具體安裝細節參看 安裝說明

  2. 安裝包安環好之後有兩個環境變量需要注意(GO語言開發這兩個環境變量一定要配置好)

    1. GOROOT : Go語言SDK的安裝路徑需要配置到系統環境變量中去
    2. GOAPTH : Go語言項目的存放路徑,也就是工作目錄
  3. 搭建開發環境

  4. window10 系統 搭建步驟(window10 下搭建相對簡單)

  5. golang中國 下載window的安裝包(注意是32位還是64位系統)

  6. 下載的安裝包可以直接安裝(記住自己的安裝路徑,在配置系統環境變量的時候用到,安裝路徑儘量不要帶中文 )

  7. 配置系統環境變量

  8. Ubuntu18

    1. 下載安裝包文件

      wget https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz
      
    2. 安裝文件文件

      mv go1.12.7.linux-amd64.tar.gz /opt
      sudo tar -zxvf go1.12.7.linux-amd64.tar.gz
      
    3. 配置Golang環境變量

      vim /etc/profile
      

      使用vim打開profile文件,並在文件內容最末端添加如下內容

      export GOROOT=/opt/go
      export PATH=$PATH:$GOROOT/bin
      export GOPATH=$HOME/goproject
      

      重新登錄一下再驗證golang環境是否安裝成功

      go env
      GOARCH="amd64"
      GOBIN=""
      GOCACHE="/home/gong/.cache/go-build"
      GOEXE=""
      GOFLAGS=""
      GOHOSTARCH="amd64"
      GOHOSTOS="linux"
      GOOS="linux"
      GOPATH="/home/gong/goproject"
      GOPROXY=""
      GORACE=""
      GOROOT="/opt/go"
      GOTMPDIR=""
      GOTOOLDIR="/opt/go/pkg/tool/linux_amd64"
      GCCGO="gccgo"
      CC="gcc"
      CXX="g++"
      CGO_ENABLED="1"
      GOMOD=""
      CGO_CFLAGS="-g -O2"
      CGO_CPPFLAGS=""
      CGO_CXXFLAGS="-g -O2"
      CGO_FFLAGS="-g -O2"
      CGO_LDFLAGS="-g -O2"
      PKG_CONFIG="pkg-config"
      GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build199119735=/tmp/go-build -gno-record-gcc-switches"
      

2.2 GOPATH 簡單說明

  1. GOPATH設置的工作空間,簡單的說工作空間是一個對應特定工程的目錄,它通常包含src目錄,pkg目錄,和bin目錄
  2. src目錄:用於以代碼包的形式組織並保存Go源碼文件
  3. pkg目錄:用於存放經由go install命令構建安裝後的代碼包
  4. bin目錄:與pkg目錄類似,在通過go install命令完成安裝後,保存由Go命令源碼文件生成的可執行文件。

2.3 go語言標準命令概述

        bug         start a bug report
        build       compile packages and dependencies
        clean       remove object files and cached files
        doc         show documentation for package or symbol
        env         print Go environment information
        fix         update packages to use new APIs
        fmt         gofmt (reformat) package sources
        generate    generate Go files by processing source
        get         download and install packages and dependencies
        install     compile and install packages and dependencies
        list        list packages or modules
        mod         module maintenance
        run         compile and run Go program
        test        test packages
        tool        run specified go tool
        version     print Go version
        vet         report likely mistakes in packages

2.4 第一個go語言程序

  1. GOPATH 指向目錄的src目錄下新建一個文件,文件名HelloWorld.go ,文件內容如下
package main

// 導入fmt包
import "fmt"

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

  1. 代碼片段分析

    1. go語言編寫的包含代碼的文件的後綴是 .go

    2. package main 每個go源代碼文件的開頭都是package聲明的, 指明該文件屬於哪個包,go語言的代碼是使用包來組織的,包類似於其他編程語言中的庫和模塊,一個包由一個或者多個.go的源文件組成,放在一個文件夾中,文件夾的名稱一般描述了包的作用

    3. import “fmt” 引入一個叫做"fmt"的包,引入該包之後,可以使用fmt包中的函數,例如:fmt.Println()

    4. func main(){

      } func是一個關鍵字,表示函數 main是函數名,main函數在go語言中有特殊的作用,main函數表示主函數,也就是整個程序的入口函數

    5. 要生成Go可執行程序,必須建立一個名字爲main的包,並且在該包中包含一個叫main()的函數(該函數是Go可執行程序的執行起點

    6. go語言中的main()函數, 不能傳遞參數,也不能定義返回值

    7. go語言程序中的註釋有兩種

    8. 一種是 /* 塊註釋 */

    9. 另一種是 // 行註釋

  2. 在cli 命令行下執行

$ go run HelloWorld.go
hello world
  1. 通過 go run 命令可以直接運行 .go程序(類似執行一個腳本)
  2. 通過 go build 命令可以對 .go文件進行編譯,生成.exe文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章