基本类型
go的基本类型有:
bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptrbyte //uint8的别称
rune //int32的别称
//表示一个Unicode编码的指针float32 float64
complex64 complex128
下面子的例子展示了几种类型,并且它们在一个代码块里被一起声明,就像import的写法一样。
int, uint, uintptr类型通常在32位机子上是32位,在64位机上是64为。当你需要一个整型的时候你应该用int,除非你有特殊的原因要用固定位的整型或者无符号的整数类型。
#basic-type.go
package main import ( "fmt" "math/cmplx" ) var ( ToBe bool = false MaxInt uint64 = 1<<64 - 1 z complex128 = cmplx.Sqrt(-5 + 12i) ) func main() { fmt.Printf("Type: %T Value: %v\n", ToBe, ToBe) fmt.Printf("Type: %T Value: %v\n", MaxInt, MaxInt) fmt.Printf("Type: %T Value: %v\n", z, z) }
零值
当生命变量的时候没有明确的初始值,就会默认被赋“零值”。
各种类型的零值分别是:
数值类型的为0,
布尔类型的为false,
字符 串类型的为空字符串"" .
#zero.go
package main import "fmt" func main() { var i int var f float64 var b bool var s string fmt.Printf("%v %v %v %q\n", i, f, b, s) }