From 1b137c2ba734a219c7c4e0965059c5d30ae7e57b Mon Sep 17 00:00:00 2001 From: leizihui Date: Thu, 9 Apr 2020 18:41:44 +0800 Subject: [PATCH] =?UTF-8?q?go=20=E5=BE=AA=E7=8E=AF=E9=97=AD=E5=8C=85?= =?UTF-8?q?=E9=99=B7=E9=98=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- golang/for_trap.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 golang/for_trap.go diff --git a/golang/for_trap.go b/golang/for_trap.go new file mode 100644 index 0000000..204908e --- /dev/null +++ b/golang/for_trap.go @@ -0,0 +1,31 @@ +package main + +import ( + "fmt" + "time" +) + +func main() { + for i := 0; i <= 10; i++ { + go func() { + fmt.Println(i) //实际闭包中i是地址 匿名函数和中和外边共享的是同一个变量 + }() + + /*正确方法 + //方法一 + finalI := i //复制一个变量副本 (java写法) + go func() { + fmt.Println(finalI) + }() + + //方法二 + go func(paramI int) { //作为参数传递到匿名函数中(实际也是等同于使用副本) + fmt.Println(paramI) + }(i) + + */ + + } + + time.Sleep(5 * time.Second) +} -- Gitee