testvariables3.go 3.5 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 51
func main() {
	i1 := 1
	i2 := 2
A
aarzilli 已提交
52 53
	f1 := 3.0
	i3 := 3
54
	p1 := &i1
A
aarzilli 已提交
55
	s1 := []string{"one", "two", "three", "four", "five"}
56
	s3 := make([]int, 0, 6)
A
aarzilli 已提交
57 58 59 60 61 62 63 64 65 66 67
	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 已提交
68 69
	ch1 := make(chan int, 2)
	var chnil chan int = nil
A
aarzilli 已提交
70 71 72 73 74 75 76 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
	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 已提交
116
	up1 := unsafe.Pointer(&i1)
117 118 119
	i4 := 800
	i5 := -3
	i6 := -500
120 121 122 123
	var err1 error = c1.sa[0]
	var err2 error = c1.pb
	var errnil error = nil
	var iface1 interface{} = c1.sa[0]
124 125 126
	var iface2 interface{} = "test"
	var iface3 interface{} = map[string]constant.Value{}
	var iface4 interface{} = []constant.Value{constant.MakeInt64(4)}
127
	var ifacenil interface{} = nil
128 129 130
	arr1 := [4]int{0, 1, 2, 3}
	parr := &arr1
	cpx1 := complex(1, 2)
131
	const1 := constant.MakeInt64(3)
132 133 134
	recursive1 := dstruct{}
	recursive1.x = &recursive1
	var iface5 interface{} = &recursive1
135 136
	var iface2fn1 interface{} = afunc1
	var iface2fn2 interface{} = afunc2
A
aarzilli 已提交
137 138

	var amb1 = 1
139
	runtime.Breakpoint()
A
aarzilli 已提交
140 141 142
	for amb1 := 0; amb1 < 10; amb1++ {
		fmt.Println(amb1)
	}
143
	runtime.Breakpoint()
144
	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)
145
}