小编pag*_*g-r的帖子

Golang 切换变量作用域

我试图在 Golang 中找出简单的开关,但我被变量范围困住了。

var body string
var errs error
req := gorequest.New()
var resp gorequest.Response
switch verb {
case 0:
    resp, body, errs := req.Get(suburl).
        Set("X-Auth-Token", d.Token).
        Set("Content-type", "application/json").
        End()
}
if errs != nil {
    return &ConnResponse{resp.StatusCode, body, fmt.Errorf("%s", errs)}
}
Run Code Online (Sandbox Code Playgroud)

我在 switch 之前声明了 resp、body、errs 和 req,我认为它们将在 switch body 之后可用。编译器返回的是低于错误(来自案例声明)

# command-line-arguments
./conn.go:135:3: resp declared and not used
./conn.go:135:9: body declared and not used
./conn.go:135:15: errs declared and not used
Run Code Online (Sandbox Code Playgroud)

所以我很好奇 switch 体内的变量范围与函数中声明的有什么不同?这段代码如何才能在切换正文后访问数据。

variables scope go switch-statement

1
推荐指数
1
解决办法
6640
查看次数

标签 统计

go ×1

scope ×1

switch-statement ×1

variables ×1