您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Go語(yǔ)言基礎(chǔ)知識(shí)有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
1. Go 程序的基本結(jié)構(gòu)
下面是一個(gè)Go 程序的基本結(jié)構(gòu),包含(包聲明,引入包,函數(shù)等)
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
2. 數(shù)據(jù)類型
go內(nèi)建基本數(shù)據(jù)類型包括基本數(shù)據(jù)類型和高級(jí)數(shù)據(jù)類型
1. 基本數(shù)據(jù)類型
布爾類型(bool)
數(shù)值類型
整數(shù)類型(byte,rune,int/uint,int8/uint8,int16/uint16,int32/uint32,int64/uint64)
浮點(diǎn)類型(float32,float64)
復(fù)數(shù)類型(complex64,complex128)
字符串類型
string Go的字符串是由單個(gè)字節(jié)連接起來(lái)的。使用UTF-8編碼標(biāo)識(shí)Unicode文本。
2. 高級(jí)數(shù)據(jù)類型
數(shù)組(array)
切片(slice)
字典(map)
通道(channel)
函數(shù)(function)
結(jié)構(gòu)體(function)
接口(interface)
指針(*Xxx,Pointer,uintptr)
如果按照底層結(jié)構(gòu)劃分,值類型包括(所有基本數(shù)據(jù)類型,數(shù)組,結(jié)構(gòu)體),引用類型包括(slice,map,channel,function,interface,指針)
3. 變量&常量
1. 變量名由字母、數(shù)字、下劃線組成,其中首個(gè)字母不能為數(shù)字,例:var name string
2. 聲明
a.指定變量類型,聲明后若不賦值,使用默認(rèn)值。
var name string
name = "李四"
b.根據(jù)值自行判定變量類型。
var name = "李四"
c.簡(jiǎn)短形式,省略var, 注意
age := 10
注意
(:=)是使用變量的首選形式
?。?=)只能被用在函數(shù)體內(nèi),而不可以用于全局變量的聲明與賦值。
?。?=)左側(cè)的變量不應(yīng)該是已經(jīng)聲明過(guò)的,否則會(huì)導(dǎo)致編譯錯(cuò)誤。
3. 常量的數(shù)據(jù)類型只可以是布爾型、數(shù)字型(整數(shù)型、浮點(diǎn)型和復(fù)數(shù))和字符串型。
1. 常量聲明:const b string = "abc"
2. iota,特殊常量
const (
a = iota
b
c
)
1. 代表連續(xù)的,無(wú)類型的整數(shù)常量,
2. 以const開(kāi)始的常量聲明語(yǔ)句為單位,
3. 從0開(kāi)始,沒(méi)賦給一個(gè)常量就遞增一次
4. 一旦跨越以const開(kāi)始的常量聲明語(yǔ)句就歸0
4. 運(yùn)算符
1. 算術(shù)運(yùn)算符,a + b ,包括(+,-,*,/,%,++,--)
2. 關(guān)系運(yùn)算符,返回True或False ,a == b ,包括(==,!=,>,<,>=,<=)
3. 邏輯運(yùn)算符,返回True或False ,包括(&&,||,!)
4. 地址運(yùn)算符
& : 返回變量存儲(chǔ)地址 (&originalValue)
* :指針變量 (*pointerValue)
5. 接收運(yùn)算符,用于接收通道的數(shù)據(jù)或者給將數(shù)據(jù)加入通道(intChan<-1, <-intChan)
5. 錯(cuò)誤處理
1. error 接口,(errors.New(value),fmt.Error(),自定義錯(cuò)誤類型)
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 函數(shù),panic(value) 與error 接口聯(lián)用,
var user = os.Getenv("USER")
if user == "" {
panic("The USER environment variable is not set.")
}
3. recover 函數(shù),與defer語(yǔ)句聯(lián)用,
func TestB() (err error) { defer func() { //在發(fā)生異常時(shí),設(shè)置恢復(fù)if x := recover(); x != nil { err = fmt.Errorf("internal error: %v", x) } }() panic("func TestB(): panic") }
6. Go 基本命令
go build 命令主要是用于測(cè)試編譯。在包的編譯過(guò)程中,若有必要,會(huì)同時(shí)編譯與之相關(guān)聯(lián)的包。
go run hello.go
go get 命令主要是用來(lái)動(dòng)態(tài)獲取遠(yuǎn)程代碼包的。
go get github.com/go-sql-driver/mysql
go run 命令主要用于編譯并運(yùn)行Go程序。
go run hello.go
go test 命令,會(huì)自動(dòng)讀取源碼目錄下面名為*_test.go的文件,生成并運(yùn)行測(cè)試用的可執(zhí)行文件。
關(guān)于“Go語(yǔ)言基礎(chǔ)知識(shí)有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。