1.變數:
var v1 int
var v2 string
var v3 [10]int // 陣列
var v4 int // 陣列切片
var v5 struct
var v6 *int // 指標
var v7 map[string]int // map,key為string型別,value為int型別
var v8 func(a int) int
v3 := 10 (冒號和等號的組合:=),用於明確表達同時進行變數宣告和初始化的工作。
2.3型別
基礎型別:
布林型別:bool。
整型:int8、byte、int16、int、uint、uintptr等。
浮點型別:float32、float64。
複數型別:complex64、complex128。
字串:string。
字元型別:rune。
錯誤型別:error。
復合型別:
指標(pointer)
陣列(array)
切片(slice)
字典(map)
通道(chan)
結構體(struct)
介面(inte***ce)
5函式:
2.5.1函式定義:在go語言中,函式的基本組成為:關鍵字func、函式名、引數列表、返回值、函式體和返回語句。
func add(a, b int)(ret int, err error)
2.5.2函式呼叫:
規則:小寫字母開頭的函式只在本包內可見,大寫字母開頭的函式才
能被其他包使用。
這個規則也適用於型別和變數的可見性。
import 「mymath」// 假設add被放在乙個叫mymath的包中
c := mymath.add(1, 2)
2.5.3不定引數
2.5.4多返回值
func (file *file) read(b byte) (n int, err error)
在讀檔案的時候不想關心read()函式返回的錯誤碼,則:
n, _ := f.read(buf)
2.5.5匿名函式和閉包
匿名函式:指不需要定義函式名的一種函式實現方式,可以直接賦值給乙個變數或者直接執行,匿名函式是乙個閉包;
f := func(x, y int) int
func(ch chan int) (reply_chan) // 花括號後直接跟引數列表表示函式呼叫
《go語言程式設計》學習筆記三
在go語言中,流程控制主要分為 選擇 迴圈 跳轉。選擇 就是由不同的條件進行不同的操作 迴圈 就是重複的執行 跳 根據條件回到某個操作 在go語言中的流程控制語句有 條件語句,對應的關鍵字為if else和else if 選擇語句,對應的關鍵字為switch case和select 將在介紹chan...
Go語言學習筆記 網路程式設計
tcp 一種面向連線的,可靠的,基於位元組流的傳輸層通訊協議 udp 使用者資料協議,不需要建立連線進行資料傳送和接收,屬於不可靠的,沒有時序的通訊 go語言tcp服務端程式處理流程 監聽埠 接受客戶端請求,建立鏈結 建立goroutine處理鏈結 監聽埠 listen err net.listen...
go語言學習筆記22 Go語言併發程式設計
goroutine是go語言並行設計的核心,有人稱之為go程。goroutine說到底其實就是協程,它比執行緒更小,十幾個goroutine可能體現在底層就是五六個執行緒,go語言內部幫你實現了這些goroutine之間的記憶體共享。執行goroutine只需極少的棧記憶體 大概是4 5kb 當然會...