在 Go 中,在 if 语句作用域内声明的变量仅在该块内可见。当需要使用条件语句外部声明的变量时,这可能会带来挑战。
考虑以下代码:
if len(array1) > len(array2) { new1 := make([]string, 0, len(array1)) } // Error: new1 is not visible here new2 := make([]string, 0, len(new1))
在此示例中,变量 new1 在 if 语句中声明,并且只能在该范围内使用。要解决此问题,new1 必须在 if 语句外部声明并在其中初始化。
var new1 []string if len(array1) > len(array2) { new1 = make([]string, 0, len(array1)) } else { new1 = make([]string, 0, len(array2)) } new2 := make([]string, 0, len(new1))
现在,new1 在 if 语句之外声明,并且可以在 if 和 else 块中访问。这允许它在后续代码中使用,并作为参数传递给 make.
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3