if语句中的变量范围 [英] Variable scope inside if statements

查看:98
本文介绍了if语句中的变量范围的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我今天才刚开始学习Go语言,并且陷入了可变范围.

I've just started learning Go today and have got stuck on variable scopes.

我最终对如何解决无法在if语句中创建变量以及事后使用它这一事实感到困惑.

I've ultimately confused about how to get around the fact that I can't create a variable inside an if statement and the use it afterward.

这是我的代码.问题在于无法在if语句之前创建new1,因为它的大小取决于if语句的结果,并且通过在if语句内部创建它,我无法在if语句结束后使用它.

This is my code. The problem is that new1 can't be created before the if statement because its size is dependent upon the result of the if statement, and by creating it inside the if statement I can't use it after the if statement ends.

if len(array1)>len(array2) {
    new1 := make([]string,0,len(array1))
    mc := Array2Map_string(array1)
    for _,tok :=range array2 {
        _, ok := mc[tok]
        if ok {
            new1[len(new1)]=tok
            }
        }
    } else {
    new1 := make([]string,0,len(array2))
    mc := Array2Map_string(array2)
    for _,tok :=range array1 {
        _, ok := mc[tok]
        if ok {
            new1[len(new1)]=tok
            }
        }
    }
new2 := make([]string,0,len(new1))
copy(new2, new1)

我唯一想到的就是做类似的事情

The only thing I can think of is to do something like

var pointlessvariable uint
if len(array1)>len(array2) {
pointlessvariable=len(array1)
} else {
pointlessvariable=len(array2)
}
var new1 = make([]string,0,pointlessvariable)
if len(array1)>len(array2) {
...

说实话,如果这确实是解决方案,那么我根本不希望使用Golang.

To be quite honest if that is truly the solution then I don't think I want to use Golang after all.

那么解决这个问题的最好方法是什么?

So what is the best way of solving this?

推荐答案

您可以在if块之前声明new1并在其中使用make:

You can declare new1 before the if block and use make inside:

var new1 []string

if len(array1)>len(array2) {
    new1 = make([]string, 0, len(array1))
    // instructions ...
} else {
    new1 = make([]string, 0, len(array2))
    // other instructions ...
}

new2 := make([]string, 0, len(new1))
copy(new2, new1)

这篇关于if语句中的变量范围的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆