testvariables3.go 3.8 KB
Newer Older
1 2 3 4
package main

import (
	"fmt"
5
	"go/constant"
6
	"runtime"
A
aarzilli 已提交
7
	"unsafe"
8 9
)

A
aarzilli 已提交
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
type astruct struct {
	A int
	B int
}

type bstruct struct {
	a astruct
}

type cstruct struct {
	pb *bstruct
	sa []*astruct
}

func afunc(x int) int {
	return x + 2
}

28 29 30 31 32 33 34
func afunc1(x int) {
}

func afunc2() int {
	return 0
}

A
aarzilli 已提交
35 36
type functype func(int) int

37 38 39 40 41 42 43 44
func (a *astruct) Error() string {
	return "not an error"
}

func (b *bstruct) Error() string {
	return "not an error"
}

45 46 47 48
type dstruct struct {
	x interface{}
}

49 50
type maptype map[string]interface{}

51 52 53 54 55
type benchstruct struct {
	a [64]byte
	b [64]byte
}

56 57 58
func main() {
	i1 := 1
	i2 := 2
A
aarzilli 已提交
59 60
	f1 := 3.0
	i3 := 3
61
	p1 := &i1
A
aarzilli 已提交
62
	s1 := []string{"one", "two", "three", "four", "five"}
63
	s3 := make([]int, 0, 6)
A
aarzilli 已提交
64 65 66 67 68 69 70 71 72 73 74
	a1 := [5]string{"one", "two", "three", "four", "five"}
	c1 := cstruct{&bstruct{astruct{1, 2}}, []*astruct{&astruct{1, 2}, &astruct{2, 3}, &astruct{4, 5}}}
	s2 := []astruct{{1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12}, {13, 14}, {15, 16}}
	p2 := &(c1.sa[2].B)
	as1 := astruct{1, 1}
	var p3 *int
	str1 := "01234567890"
	var fn1 functype = afunc
	var fn2 functype = nil
	var nilslice []int = nil
	var nilptr *int = nil
A
aarzilli 已提交
75 76
	ch1 := make(chan int, 2)
	var chnil chan int = nil
A
aarzilli 已提交
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
	m1 := map[string]astruct{
		"Malone":          astruct{2, 3},
		"Adenauer":        astruct{},
		"squadrons":       astruct{},
		"quintuplets":     astruct{},
		"parasite":        astruct{},
		"wristwatches":    astruct{},
		"flashgun":        astruct{},
		"equivocally":     astruct{},
		"sweetbrier":      astruct{},
		"idealism":        astruct{},
		"tangos":          astruct{},
		"alterable":       astruct{},
		"quaffing":        astruct{},
		"arsenic":         astruct{},
		"coincidentally":  astruct{},
		"hindrances":      astruct{},
		"zoning":          astruct{},
		"egging":          astruct{},
		"inserts":         astruct{},
		"adaptive":        astruct{},
		"orientations":    astruct{},
		"periling":        astruct{},
		"lip":             astruct{},
		"chant":           astruct{},
		"availing":        astruct{},
		"fern":            astruct{},
		"flummoxes":       astruct{},
		"meanders":        astruct{},
		"ravenously":      astruct{},
		"reminisce":       astruct{},
		"snorkel":         astruct{},
		"gutters":         astruct{},
		"jibbed":          astruct{},
		"tiara":           astruct{},
		"takers":          astruct{},
		"animates":        astruct{},
		"Zubenelgenubi":   astruct{},
		"bantering":       astruct{},
		"tumblers":        astruct{},
		"horticulturists": astruct{},
		"thallium":        astruct{},
	}
	var mnil map[string]astruct = nil
	m2 := map[int]*astruct{1: &astruct{10, 11}}
	m3 := map[astruct]int{{1, 1}: 42, {2, 2}: 43}
A
aarzilli 已提交
123
	up1 := unsafe.Pointer(&i1)
124 125 126
	i4 := 800
	i5 := -3
	i6 := -500
127 128 129 130
	var err1 error = c1.sa[0]
	var err2 error = c1.pb
	var errnil error = nil
	var iface1 interface{} = c1.sa[0]
131 132 133
	var iface2 interface{} = "test"
	var iface3 interface{} = map[string]constant.Value{}
	var iface4 interface{} = []constant.Value{constant.MakeInt64(4)}
134
	var ifacenil interface{} = nil
135 136 137
	arr1 := [4]int{0, 1, 2, 3}
	parr := &arr1
	cpx1 := complex(1, 2)
138
	const1 := constant.MakeInt64(3)
139 140 141
	recursive1 := dstruct{}
	recursive1.x = &recursive1
	var iface5 interface{} = &recursive1
142 143
	var iface2fn1 interface{} = afunc1
	var iface2fn2 interface{} = afunc2
144 145
	var mapinf maptype = map[string]interface{}{}
	mapinf["inf"] = mapinf
146 147 148 149 150 151
	var bencharr [64]benchstruct
	var benchparr [64]*benchstruct

	for i := range benchparr {
		benchparr[i] = &benchstruct{}
	}
A
aarzilli 已提交
152 153

	var amb1 = 1
154
	runtime.Breakpoint()
A
aarzilli 已提交
155 156 157
	for amb1 := 0; amb1 < 10; amb1++ {
		fmt.Println(amb1)
	}
158
	runtime.Breakpoint()
159
	fmt.Println(i1, i2, i3, p1, amb1, s1, s3, a1, p2, p3, s2, as1, str1, f1, fn1, fn2, nilslice, nilptr, ch1, chnil, m1, mnil, m2, m3, up1, i4, i5, i6, err1, err2, errnil, iface1, iface2, ifacenil, arr1, parr, cpx1, const1, iface3, iface4, recursive1, recursive1.x, iface5, iface2fn1, iface2fn2, bencharr, benchparr, mapinf)
160
}