初级会员
  • 第 10001 位会员
  • onsunday
  • 2017-07-17 02:16:05
  • Offline
  • 21 46

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • httprouter
  • #5 @onsunday func TimeConst() { i := 123 var now *int = &i fmt.Println("1", now) defer func(t *int) { fmt.Println("2", t) }(now) ii := 456 now = &ii fmt.Println("3", now) } func main() { TimeConst() } 看now的地址值
  • #4 @__Golang__ range 一次 defer中的参数就已经传进去, 只是方法还未执行。 比如 range第一遍是,defer 的 m2(User{name:"A"}) range第二遍是,defer 的 m2(User{name:"B"}) range第三遍是,defer 的 m2(User{name:"c"})
  • type User struct { name string } func m1(user *User) { fmt.Println(user.name) } func m2(user User) { fmt.Println(user.name) } func main() { users := []User{{"A"}, {"B"}, {"C"}} for _, user := range users { defer m1(&user) } for _, user := range users { defer m2(user) } } //m1 ,m2 是一样的 //range 出来user的值是复制值且存储地址不变, //go 复制值传参,m1 复制地址值,m2 复制struct