這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
go基礎資料型別 (Elementary Data Type)
1.bool,一個位元組,值是true或者false,不可以用0或者1表示(java中boolean佔用4個位元組,而boolean作為數組出現時,每個boolean佔用1個位元組)2.int/uint(帶符號為與不帶符號位的int類型):根據平台不同是32位或者64位3.intx/uintx:x代表任意位元,例如:int3,代表佔3bit的int類型4.byte佔用8位,一個位元組,相當於uint8,不帶符號位5.floatx:由於沒有double類型,所以float64就是double。float32小數精確到7位,float64小數精確到15位。6.complex64/complex128:複數類型7.uintptr:儲存指標用的類型,也是隨著平台改變而改變,因為指標的長度就是隨平台而變。8.其他類型值:array,struct,string9.參考型別:slice,map,chan10.介面類型:interface11.函數類型:func
類型零值
零值不等於空值,是說當變數被聲明為某種類型後的預設值。一般情況下,實值型別預設為0,bool預設為false,string為空白串。
變數聲明與賦值
樣本:package mainimport ("fmt""../wang")var ( aa = 1 bb = 2 cc = 3)const ( a1 = 1 a2 = 2 a3 = 3) type ( w1 int w2 int w3 string)func main() { var aaa w3 = "haha" var bbb w3 bbb = "wawawa" wang.Wang1() fmt.Println("Hello World!" + bbb + "" + aaa)}
- import,var,const,type,定義多個時,可以用括弧簡寫。也可以使用並行方式,局部變數只能使用並行方式。
- import裡面的包名是相對於此go檔案的路徑為起始點。上面的../wang就是證明,代表的是實體路徑,並不是每個檔案上面寫的package。那個pkg名是引用包裡內容是首碼,例如:wang.Wang1()。
- const聲明常量必須要接著賦值。
- type表示定義類型名,就像資料庫裡面的差不多。這裡定義了w1,w2,w3分別讓他們代表int,int,string。算是這三種原始類型的別名,那麼在後面就要寫這些別名了。並且不能省略寫。
- 局部變數定義時不能採用全域變數這種大括弧形式,採用並行方式。
- 定義與變數聲明時:var a int =10;var a=10;a:=10——->第一種是標準寫法,第二,三種表示定義並賦值,編譯器根據賦值判斷是哪一種類型。第三種這種簡略寫法不能定義全域變數,編譯器會報錯。
- go語言中私人變數,常量,函數等,打頭字母是小寫,公有的打頭字母大寫。
- 只有main包中有main函數,main函數不能有傳回值,main小寫。
- 定義的局部變數,引入的包必須要用,如果不用,編譯報錯。
並行方式: var a,b,c,d [int] = 1,2,3,4;
特殊的:var a,,c,d = 1,2,3,4—-> 代表空白符,相當於佔位置,因此,2這個值就輪空了。實際意義在函數中會體現。