Go 中的变量作用域
在 Go 中,变量必须在特定作用域内声明。当您在 if...else 语句内声明变量时,其范围仅限于该语句。这意味着该变量不能在语句之外使用。
请考虑以下代码:
if strings.EqualFold(r.Method, "GET") || strings.EqualFold(r.Method, "") { req, er := http.NewRequest(r.Method, r.Uri, b) } else { req, er := http.NewRequest(r.Method, r.Uri, b) }
在此代码中,变量 req 和 er 在 if... 内声明。 else 语句。这意味着它们只能在该语句中使用。在语句之外,变量是未定义的。
要解决这个问题,可以在 if...else 语句之外声明变量,如下所示:
var req *http.Request var er error if strings.EqualFold(r.Method, "GET") || strings.EqualFold(r.Method, "") { req, er = http.NewRequest(r.Method, r.Uri, b) } else { req, er = http.NewRequest(r.Method, r.Uri, b) }
现在,变量 req 和 er 是在 if...else 语句之外声明的,因此它们可以在整个函数中使用。
以上是如何访问 Go 中 `if...else` 语句中声明的变量?的详细内容。更多信息请关注PHP中文网其他相关文章!