1. 程式人生 > >Go語言之基本資料型別以及一些規範

Go語言之基本資料型別以及一些規範

go基本資料型別

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,string
9.引用型別:slice,map,chan
10.介面型別:interface
11.函式型別:func

型別零值

零值不等於空值,是說當變數被宣告為某種型別後的預設值。
一般情況下,值型別預設為0,bool預設為false,string為空串。

變數宣告與賦值

示例:
package main
import (
"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)
}
  1. import,var,const,type,定義多個時,可以用括號簡寫。也可以使用並行方式,區域性變數只能使用並行方式。
  2. import裡面的包名是相對於此go檔案的路徑為起始點。上面的../wang就是證明,代表的是物理路徑,並不是每個檔案上面寫的package。那個pkg名是引用包裡內容是字首,例如:wang.Wang1()。
  3. const宣告常量必須要接著賦值。
  4. type表示定義型別名,就像資料庫裡面的差不多。這裡定義了w1,w2,w3分別讓他們代表int,int,string。算是這三種原始型別的別名,那麼在後面就要寫這些別名了。並且不能省略寫。
  5. 區域性變數定義時不能採用全域性變數這種大括號形式,採用並行方式。
  6. 定義與變數宣告時:var a int =10;var a=10;a:=10——->第一種是標準寫法,第二,三種表示定義並賦值,編譯器根據賦值判斷是哪一種型別。第三種這種簡略寫法不能定義全域性變數,編譯器會報錯。
  7. go語言中私有變數,常量,函式等,打頭字母是小寫,公有的打頭字母大寫。
  8. 只有main包中有main函式,main函式不能有返回值,main小寫。
  9. 定義的區域性變數,引入的包必須要用,如果不用,編譯報錯。

並行方式: var a,b,c,d [int] = 1,2,3,4;

特殊的:var a,,c,d = 1,2,3,4—-> 代表空白符,相當於佔位置,因此,2這個值就輪空了。實際意義在函式中會體現。