GO語言的變數宣告和基本資料型別

2021-10-14 02:06:38 字數 1558 閱讀 4841

宣告變數的一般形式是通過關鍵字 var ,var name type ,其中 name為變數名,type為變數的資料型別。

以上為單變數宣告,當然也可以在乙個語句中對多個變數進行宣告,var name1, name2 type = val1, val2,前提是多個變數的型別必須是相同的。

在宣告變數時也可以使用 := 來進行宣告,但是 := 左側必須為新的變數,如果沒有宣告新的變數,就會編譯錯誤。具體格式為 v_name := v_value ,其中編譯器會根據值 v_value 來自動判定變數的型別,這也是go語言的特色之一,不用具體明確變數的型別,能夠節省很多開發的時間。

布林型:bool,true/false

數值型別:int/float32/float64,並支援複數,位運算採用補碼。

字串型別:string,是由單個位元組連線起來,通過utf-8編碼表示unicode文字。

指標型別:pointer。

陣列型別。

結構化型別:struct。

channel型別。

函式型別

切片型別。

介面型別。

map型別。

float32:ieee-754,32位浮點整數。

float64:ieee-754,64位浮點整數。

complex64:32位實數和虛數。

complex128:64位實數和虛數,複數的預設形式。

uint8:無符號8位整型,0到255。

uint16:無符號16位整型,0到65535。

uint32:無符號32位整型,0到2^32。

uint64:無符號64位整型,0到2^64。

uint8:有符號8位整型,-128到127。

uint16:有符號16位整型,-32768到32767。

uint32:有符號32位整型,-2^31 到 2^31-1。

uint64:有符號64位整型,-2^63到 2^63-1。

byte:字元型別,代表acsll碼的乙個字元,uint8型別。

rune:字元型別,處理中文等復合字元時使用到,類似int32。

uint:32或64位。

int:與uint一樣大小。

uintptr:無符號整型,用於存放乙個指標。

指定變數型別,如果沒有進行初始化,變數預設零值。

數值型別:包括(complex64/128),變數預設都為0。

布林型別:false。

字串:"",空字串。

其餘為nil的型別:*int,int,map[string] int,chan int, func(string) int,error。

所有像int,float,bool以及string這些基本型別都是屬於值型別,這些型別的變數都指向存在於記憶體中的值。

在使用等號=時,就是將乙個變數的值賦值給另乙個變數,例如a=b,實際上是在記憶體將a的值拷貝給了b。&a可以獲取到a的記憶體位址,值型別變數的值是儲存在棧中的。

對於更複雜的資料通常需要多個字,這些資料一般通過引用型別來儲存。

在go語言中,如果僅僅給變數賦值,但是不使用的話,就會編譯錯誤,報 a declared and not used 。

Go的宣告和變數

1.單個變數的宣告和賦值 var a int 變數的宣告 a 123 變數的賦值 var a int 123 變數的宣告同時賦值 int可省略,系統自動判斷型別 a 123 最簡單的寫法 區域性不能這麼寫 2.多個變數的宣告和賦值 var a b c d int 多個變數的宣告 a b c d 1 ...

go語言基本資料結構

go語言中的陣列相當於python中的元組 陣列是乙個資料集合常用於儲存一系列用數字做索引 的資料。在 go 語言中 要建立陣列,可宣告乙個陣列變數,並指定其長度和資料型別。只包含兩個元素,無法給第 3 個元素賦值,因此這將導致編 譯階段錯誤。var cheeses 2 string cheeses...

GO語言基本資料型別

任何go語言原始碼檔案都由若干個程式實體組成的。在go語言中,變數 常量 函式 結構體和介面被統稱為 程式實體 而它們的名字被統稱為 識別符號 識別符號可以是任何unicode編碼可以表示的字母字元 數字以及下劃線 不過,首字母不能是數字或下劃線。注意 在go語言中,我們對程式實體的訪問許可權控制只...