天天看點

Golang資料類型和變量

資料類型

先來介紹一下Golang的資料類型。

布爾型

bool

類型代表邏輯值,有真值

true

和假值

false

兩種取值。

整數類型

整數類型有如下幾種,這些整數都是有符号的類型,它們的無符号版本是類型名前面添加

u

,例如

uint32

類型 長度
int8 1位元組
int16 2位元組
int32 4位元組
int64 8位元組

除此以外,還有比較特殊的幾種類型。

備注
byte 是int8的别名
int 和系統有關 有符号整數
uint 無符号整數
uintptr 指針類型
rune 是int32的别名,代表Unicode代碼點

浮點數類型

有兩種浮點數,單精度

float32

和雙精度

float64

,類似于Java語言中的

float

double

複數類型

Golang支援複數類型,有

complex64

complex128

兩種精度不同的複數類型。

字元串類型

字元串類型是

string

類型預設值

對于布爾類型,預設值是

false

;對于整數類型,預設值是0;對于字元串類型,預設值是空值字元串

""

變量和常量

變量聲明

Golang比較特殊的一點就是類型後置了。如果學習過C系的語言,我們會習慣

int a

這樣的

類型 變量名

方式。不過這種方式在複雜的類型組合下不太直覺,是以Golang采用了後置的類型聲明方式。如果聲明的時候不指定初始化值,就會使用對應類型的預設值。

//類型在變量名後面
var i int
           

如果一行聲明多個變量且類型相同,可以隻在最後一個變量上添加類型。

var x, y int
//聲明的同時指派
var a, b int = 3, 4
           

如果要聲明的是局部變量(在函數内部的變量),可以使用另一種方式

:=

,省略

var

關鍵字。這時候必須在聲明的時候同時給定初始值,變量類型則由初始值的類型推斷。

func hey() {
    k := 5
    fmt.Printf("k=%d", k)
}
           

如果變量聲明在函數外面,那麼它就是一個全局變量。

類型轉換

Golang不支援隐式類型轉換,所有類型都需要顯式轉換。轉換使用

類型名(變量名)

的方式。

var count int = int(32.0)
           

常量聲明

聲明常量使用

const

關鍵字,常量無法使用

:=

方式聲明。

const Pi = 3.1415926