Golang 入門系列(三)Go語言基礎知識彙總

前面已經了 Go 環境的配置和初學Go時,容易遇到的坑,你們能夠請查看前面的文章 https://www.cnblogs.com/zhangweizhong/category/1275863.htmlhtml

在這篇文章中,下面爲初學者彙總下Go語言基礎知識:mysql

 

1. Go 程序的基本結構git

下面是一個Go 程序的基本結構,包含(包聲明,引入包,函數等)github

package main // 定義包名,package main表示一個可獨立執行的程序,每一個 Go 應用程序都包含一個名爲 main 的包。

import "fmt" // 導入須要使用的包(的函數,或其餘元素)

func main() { // 程序的入口函數。main 函數是每個可執行程序所必須包含的,通常來講都是在啓動後第一個執行的函數。
  fmt.Println("Hello, World!")
}

 

2. 數據類型sql

go內建基本數據類型包括基本數據類型和高級數據類型數組

1. 基本數據類型
  布爾類型(bool)ide

  數值類型函數

    整數類型(byte,rune,int/uint,int8/uint8,int16/uint16,int32/uint32,int64/uint64)
    浮點類型(float32,float64)
    複數類型(complex64,complex128)測試

  字符串類型
    string Go的字符串是由單個字節鏈接起來的。使用UTF-8編碼標識Unicode文本。

2. 高級數據類型ui

  數組(array)
  切片(slice)
  字典(map)
  通道(channel)
  函數(function)
  結構體(function)
  接口(interface)
  指針(*Xxx,Pointer,uintptr)

若是按照底層結構劃分,值類型包括(全部基本數據類型,數組,結構體),引用類型包括(slice,map,channel,function,interface,指針)


3. 變量&常量

  1. 變量名由字母、數字、下劃線組成,其中首個字母不能爲數字,例:var name string
  2. 聲明
    a.指定變量類型,聲明後若不賦值,使用默認值。
      var name string
      name = "李四"

    b.根據值自行斷定變量類型。
      var name = "李四"

    c.簡短形式,省略var, 注意
      age := 10

  注意
    (:=)是使用變量的首選形式
    (:=)只能被用在函數體內,而不能夠用於全局變量的聲明與賦值。
    (:=)左側的變量不該該是已經聲明過的,不然會致使編譯錯誤。


  3. 常量的數據類型只能夠是布爾型、數字型(整數型、浮點型和複數)和字符串型。
    1. 常量聲明:const b string = "abc"
    2. iota,特殊常量
      const (
        a = iota
        b
        c
      )

    1. 表明連續的,無類型的整數常量,
    2. 以const開始的常量聲明語句爲單位,
    3. 從0開始,沒賦給一個常量就遞增一次
    4. 一旦跨越以const開始的常量聲明語句就歸0

4. 運算符
  1. 算術運算符,a + b ,包括(+,-,*,/,%,++,--)
  2. 關係運算符,返回True或False ,a == b ,包括(==,!=,>,<,>=,<=)
  3. 邏輯運算符,返回True或False ,包括(&&,||,!)
  4. 地址運算符 

    & : 返回變量存儲地址 (&originalValue)

    * :指針變量 (*pointerValue)

  5. 接收運算符,用於接收通道的數據或者給將數據加入通道(intChan<-1, <-intChan)


5. 錯誤處理

  1. error 接口,(errors.New(value),fmt.Error(),自定義錯誤類型)

func Divide(a, b float64) (result float64, err error) {
    if b == 0 {
        result = 0.0
        err = errors.New("runtime error: divide by zero")
        return
    } else {
        result = a / b
        err = nil
    }
    return
}


  2. panic 函數,panic(value) 與error 接口聯用,

    var user = os.Getenv("USER")
    if user == "" {
        panic("The USER environment variable is not set.")
    }

 

  3. recover 函數,與defer語句聯用,

func TestB() (err error) {
    defer func() { //在發生異常時,設置恢復
        if x := recover(); x != nil {
            err = fmt.Errorf("internal error: %v", x)
        }
    }()

    panic("func TestB(): panic")
}

 

6. Go 基本命令

  go build 命令主要是用於測試編譯。在包的編譯過程當中,如有必要,會同時編譯與之相關聯的包。

    go run hello.go

  go get 命令主要是用來動態獲取遠程代碼包的。

    go get github.com/go-sql-driver/mysql

  go run 命令主要用於編譯並運行Go程序。

    go run hello.go

  go test 命令,會自動讀取源碼目錄下面名爲*_test.go的文件,生成並運行測試用的可執行文件。

相關文章
相關標籤/搜索