go語言基礎
Go語言基礎
go語言由google開發,對分布式系統開發友好
安裝與設置
- 從Go官網下載并安裝Go。
- 配置環境變量:
- 設置
GOPATH(工作區路徑)。 - 將
GOBIN添加到系統的PATH中。
- 設置
基本語法
首先進行一個基礎的hello world程序編寫
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
go語言基礎組成包括包聲明、引入包、函數、變量、語句和表達式、注釋
數據類型
- 基本類型:整型
int, 浮點數float64,float32,字符串類型string, 布爾類型bool - 復合類型:數組類型
array, 切片類型slice,map,struct
變量聲明
// var identifier type
var name string = "Go語言"
var name, name2 string //同時聲明兩個變量,如果無顯示初始化,則會默認初始化為空字符串
// 其它類型默認初始化為nil
var p *int // 指針
var s []int // 切片
var m map[int] int // 映射
var ch chan int // 通道
var f func() int // 函數
var i interface{} // 接口
// 根據值自動判斷類型
var i = 3
// 也可以簡短聲明
i := 3 // 但是需要注意如果已經被聲明,此時再聲明是不允許的,只能在函數體中允許使用
// 等價于var i int i = 3
var ( // 用于聲明全局變量
a int = 5
b bool = True
)
常量聲明
const identifier [type] = value
const (
a = iota // 特殊常量,可以被編譯器修改的常量,會被初始化為0
b // 1
c // 2
)
控制結構
if condition {
// 條件為真時執行
} else {
// 條件為假時執行
}
for i := 0; i < 10; i++ {
fmt.Println(i)
}
for ture {
// 無限循環
}
函數
func add(a int, b int) int {
return a + b
}
并發
Go語言內置支持并發,通過goroutine和channel實現。
go func() { // go 聲明協程
fmt.Println("并發執行")
}()
ch := make(chan int)
ch <- 42 // <-聲明通道
fmt.Println(<-ch)
go接收者
go接收者可以用來實現類似類的功能,go語言中沒有類的概念,簡單來講接收者其實就是我要使用的東西或者我要改的東西,就可以用作接收者。比如方法是雕刻,那么石頭就是接收者,雕刻要雕石頭。
func (r ReceiverType) 方法名(參數) 返回值 {
// 可通過r訪問接收者的字段/方法
}
// ReceiverType必須是當前包定義的類型,不能是內置類型int
// 例子
type Coffe struct { temp float64}
func (c Coffe) heat() { c.temp += 10 }
func (c *Coffe) heat() { c.temp += 10 }
c Coffe // 值接收者,適用于不需要修改源數據,且數據較少時
c *Coffe // 指針接收者,適用于需要修改源數據,且數據較多時
go語言模式匹配
go語言中ok模式匹配中可以用來檢查鍵值是否存在,如果鍵值存在,則ok為true, 否則為false,_代表不獲取鍵對應的值,忽略返回值
_, ok := myMap[key]
if ok {
fmt.Println("鍵存在,值為:")
} else {
fmt.Println("鍵不存在")
}

浙公網安備 33010602011771號