测试题一
package main
import (
"fmt"
"time"
)
func main() {
nums := []int{1, 2, 3}
for _, i := range nums {
func() {
fmt.Println(i)
}()
}
}
问:程序输出的结果是多少?
测试题二
package main
import (
"fmt"
"time"
)
func main() {
nums := []int{1, 2, 3}
for _, i := range nums {
go func() {
fmt.Println(i)
}()
}
time.Sleep(3 * time.Second)
}
问:程序输出的结果是多少?
测试题三
问:在测试题二的基础上,如果我想让程序的输出结果是下面六种中的一个,应该怎么改?最多有几种写法?
- 1 2 3
- 1 3 2
- 2 1 3
- 2 3 1
- 3 1 2
- 3 2 1
测试题四
问:我这样改,能不能达到测试题三的要求?
package main
import (
"fmt"
"time"
)
func main() {
nums := []int{1, 2, 3}
for _, i := range nums {
go func(i *int) {
fmt.Println(i)
}(&i)
}
time.Sleep(3 * time.Second)
}