声明一个整型变量i var i int
声明一个含有10个元素的整型数组a var a [10]int
声明一个整型数组切片a var s []int
声明一个整型指针变量p var p *int
声明一个key为字符串型value为整型的map变量m var m map[string]int
声明一个入参和返回值均为整数的函数变量f var f func(a int) int
声明一个用于读取int数据的单向channel变量ch var ch <-chan int
假设源文件命名为slice.go,则测试文件命名为 slice_test.go
go test要求测试函数的前缀必须命名为 Test
下面的程序的运行结果是
for i := 0;i < 5; i++ {
defer fmt.Print("%d", i)
}
43210
下面的程序的运行结果是
func main() {
x := 1
{
x := 2
fmt.Print(x)
}
fmt.Println(x)
}
21
下面的程序的运行结果是
func main() {
strs := []string{"one","two","three"}
for _, s := range strs {
go func() {
time.Sleep(1 * time.Second)
fmt.Printf("%s", s)
}()
}
time.Sleep(3 * time.Second)
}
three three three
下面的程序的运行结果是
func main() {
x := []string{"a","b","c"}
for _, v := range x {
fmt.Print(v)
}
}
abc
下面的程序的运行结果是
func main() {
i := 1
j := 2
i, j = j, i
fmt.Printf("%d, %d\n", i, j)
}
21
下面的程序的运行结果是
func incr(p *int) {
*p++
return *p
}
func main() {
v := 1
incf(*v)
fmt.Println(v)
}
2
启动一个goroutine的关键字是 go
下面的程序的运行结果是
type Slice []int
func NewSlice() Slice {
return make(Slice, 0)
}
func (s *Slice) Add(elem int) *Slice {
*s = append(*s, elem)
fmt.Print(elem)
return s
}
func main() {
s := NewSlice()
defer s.Add(1).Add(2)
s.Add(3)
}
132