golang第五課----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,channel
10.介面型別:interface
11.函式型別:func
注意:Golang中還有個rune型別,它等價於int32型別。
型別轉換
Golang是靜態型別的程式語言,所有資料的型別在編譯期確定了。而且 Golang中即使是底層存的是一個型別,宣告的型別不一樣,也要強制轉換才能互用。
在Go 語言裡面沒有隱式轉換,遇到不同型別想互用,只能進行強制型別轉換。
Go語言型別轉換基本格式如下:
1 type_name(expression)
其中type_name是資料型別,expression是原始資料或表示式。
以下例項中將整型轉化為浮點型,並計算結果,將結果賦值給浮點型變數:
package main import "fmt" func main() { var sum int = 17 var count int = 5 var mean float32 mean = float32(sum)/float32(count) //強制轉換 fmt.Printf("mean 的值為: %f\n",mean) }