1.6 مقادیر صفر تایپ‌ها (zero values)

1.6 مقادیر صفر تایپ‌ها (zero values)

در جدول زیر فهرست تمامی تایپ‌ها را با مقادیر صفرشان (پیش‌فرض) قرار دادیم:

تایپمقدار پیش فرض یا مقدار صفر
int0
int80
int160
int320
int640
uint0
uint80
uint160
uint320
uint640
uintptr0
float320
float640
complex640+0i
complex1280+0i
boolfalse
string""
interfacenil
slicenil
channelnil
mapnil
pointernil
functionnil
structبراساس مقدار پیش فرض فیلدها

نمونه کد نمایش مقدار صفر تایپ‌ها:

 1package main
 2
 3import (
 4	"fmt"
 5)
 6
 7func main() {
 8	var (
 9		a int
10		b int8
11		c int16
12		d int32
13		e int64
14		f uint
15		g uint8
16		h uint16
17		i uint32
18		j uint64
19		k uintptr
20		l float32
21		m float64
22		n complex64
23		o complex128
24		p bool
25		q string
26		r interface{}
27		s []int
28		t chan int
29		u map[string]int
30		v *int
31		w func()
32		x struct{}
33		y struct {
34			ya int
35			yb bool
36			yc rune
37		}
38	)
39
40	fmt.Println("int:", a)
41	fmt.Println("int8:", b)
42	fmt.Println("int16:", c)
43	fmt.Println("int32:", d)
44	fmt.Println("int64:", e)
45	fmt.Println("uint:", f)
46	fmt.Println("uint8:", g)
47	fmt.Println("uint16:", h)
48	fmt.Println("uint32:", i)
49	fmt.Println("uint64:", j)
50	fmt.Println("uintptr:", k)
51	fmt.Println("float32:", l)
52	fmt.Println("float64:", m)
53	fmt.Println("complex64:", n)
54	fmt.Println("complex128:", o)
55	fmt.Println("bool:", p)
56	fmt.Println("string:", q)
57	fmt.Println("interface:", r)
58	fmt.Println("slice:", s)
59	fmt.Println("channel:", t)
60	fmt.Println("map:", u)
61	fmt.Println("pointer:", v)
62	fmt.Println("function:", w)
63	fmt.Println("struct:", x)
64	fmt.Println("struct:", y)
65}