据我所了解go是不支持类似threadlocal的操作的,但要是我现在一个dao层的方法突然要新增一个语言字段,那我只能从controller层一层层传下去吗?本身这个方法还有多层调用,那样我的改动太大了。
以前我用java会有类似scope等于request的threadlocal可以直接get一些必须的信息
你们会遇到类似的问题吗,怎样解决,我想过在框架调用handler之前生成request的uuid放进map,然后最后移除掉
但go适合我这样做吗?也可能写的不好引发内存泄漏问题
5楼 <a href="/user/fengyuedada" title="@fengyuedada">@fengyuedada</a> 用 ... 这样只需要两头改,中间传参不用改
```
package main
import "fmt"
func main() {
var uid int
uid = 100
name := "xxx"
ip := "127.0.0.1"
args := []string{name, ip}
multiParam(uid, name)
multiParam(uid, name, ip)
multiParam(uid, args...)
}
func multiParam(uid int, args ...string) {
fmt.Print(uid, args)
nextcall(uid, args...)
}
func nextcall(uid int, args ...string) {
fmt.Print(uid, args)
nextnextcall(uid, args...)
}
func nextnextcall(uid int, args ...string) {
fmt.Print(uid, args)
}
```
如果这样觉得代码不清晰,可以把参数封装成struct 象bean那样传来传去
#8
更多评论