這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
哈哈
package main// 關鍵字var 聲明變數 類型資訊放在變數名後//聲明一個int型變數var v1 int//聲明一個string類型var v2 string//聲明多個變數var v3, v4 bool//[0 0 0 0 0 0 0 0 0 0] 數組var v5 [10]int//數組切片var v6 []int//聲明結構體var v7 struct { f int}// 聲明指標var v8 *int//聲明map key為string類型,value是int類型var v9 map[string]int// 匿名函數和閉包var v10 func(a int) int//多個需要聲明的變數放在一起var ( name int age string)聲明變數
package mainimport "fmt"func main() { //聲明變數的初始化,var 可以省略寫法 var v1 int = 10 //編譯器可以自動算出v2的類型 var v2 = 10 //編譯器自動算出v3的類型 //同時進行變數聲明和初始化 v3 := 10 fmt.Println(v1, v2, v3)}// 出現在:= 左側的變數 只能聲明一次,不可重複變數初始化
package mainimport "fmt"//聲明之後再賦值func main() { var i int i = 100 var j int j = 50 //Go語言的多重賦值,如下代碼交換i和j的變數 //go的多重賦值特性可以很明顯的最佳化代碼,相比c/c++ i, j = j, i fmt.Println(i, j)}變數賦值
package mainimport "fmt"//使用強型別語言編程時,調用函數時為了擷取一個值,卻因為函數返回多個值,又得定義一堆變數//可以使用多重返回和匿名變數來避免這些問題func GetName() (firstname, lastname, nickname string) { return "yu", "yuchao", "chaoge"}//只想獲得nickname,函數調用語句可以寫func main() { //最佳化代碼的清晰度 _, _, nickname := GetName() fmt.Println(nickname)}匿名變數
package main//聲明go代碼所屬的包,包是go例最基本的分發單位,要產生可執行程式,必須名為main,且下面有個main()函數,作為執行起點//匯入本程式所以來的包,下列用到Println()函數,所以匯入fmtimport "fmt"//不得在原始碼中寫入未使用的包,否則編譯器會出錯//軟體工程的設計哲學,強制左花括弧 { 的置放位置//函數名的大小寫規則func Compute(value1 int, value2 float64) (resule float64, err error) { //函數體 fmt.Println(value1, value2) return}//main函數不能帶參數,也不能定義傳回值,命令列傳入的參數存在os.Args變數中func main() { Compute(1, 3)}代碼解讀
package main//常量是編譯期間就已知,而且不可改變,可以是數實值型別(整型、浮點型、複數)、布爾類型、字串const Pi float64 = 3.14159265358979323846//無類型浮點常量const Zero = 0.0const ( //無類型常量 size int64 = 1024 eof = -1)//常量多重賦值 u=0.0 v=3.0const u, v float32 = 0, 3//無類型整型,字串常量const a, b, c = 3, 4, "foo"
常量