數據類型
Go語言按類別有以下幾種數據類型:
- bool,一個字節,值是true或者false,不可以用0或者1表示
- int/uint(帶符號為與不帶符號位的int類型):根據平台不同是32位或者64位
- intx/uintx:x代表任意位數,例如:int3,代表占3bit的int類型
- byte占用8位,一個字節,相當於uint8,不帶符號位
- floatx:由於沒有double類型,所以float64就是double。float32小數精確到7位,float64小數精確到15位
- complex64/complex128:復數類型
- uintptr:保存指針用的類型,也是隨着平台改變而改變,因為指針的長度就是隨平台而變
- 其他類型值:array,struct,string
- 引用類型:slice,map,channel
- 接口類型:interface
- 函數類型:func
注意:Golang中還有個rune類型,它等價於int32類型。
類型轉換
Golang是靜態類型的編程語言,所有數據的類型在編譯期確定了。而且 Golang中即使是底層存的是一個類型,聲明的類型不一樣,也要強制轉換才能互用。在Go 語言里面沒有隱式轉換,遇到不同類型想互用,只能進行強制類型轉換。
Go語言類型轉換基本格式如下:
type_name(expression)
其中type_name是數據類型,expression是原始數據或表達式。
以下實例中將整型轉化為浮點型,並計算結果,將結果賦值給浮點型變量:
package main
import "fmt"
func main() {
var sum int = 232
var count int = 12
var avg float32
avg = float32(sum)/float32(count) //強制轉換
fmt.Printf("avg 的值為: %f\n",avg)
}
