初级会员
  • 第 4190 位会员
  • ychencode
  • 466739185@qq.com
  • 2015-12-30 02:29:30
  • Offline
  • 0

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 请教一个问题,再上面初级问题里面,有一个chan的例子:代码是这样的: `ch := make(chan int) done := make(chan struct{}) for i := 0; i < 3; i++ { go func(idx int) { select { case ch <- (idx + 1) * 2: fmt.Println(idx, "send result") case <-done: fmt.Println(idx, "exiting") } }(i) } fmt.Println("result:", <-ch) close(done) time.Sleep(3 * time.Second)` 有个问题我不太理解,关闭的是done这个chan,ch只取出一次,那么剩余的处于阻塞态,case ch不执行,可是done里面没有放数据的环节,那么done的数据是哪里来的呢?
  • 换成(*b)[1]++得到的结果是一样的
  • 已解决,是个人粗心拼写错误,粗心害死人呀,大家以后要小心 res.Header().Set("Content-Disposition", "attachment; filename='filename.xlsx'") 是正解
  • #3 @astar 是的,文件的名字不是规定的filename.xlsx
  • #1 @blov 我是通过get传商品的id,然后下载下来的文件的名字就是用商品id命名了,如果商品很多的情况下,文件名字会很长,而且扩展名也不起作用,需要手动的调用excel打开