我刚刚开始学习Go,并且陷入了变量作用域。Golang:if语句中的变量范围

我最终如何解决这个事实,即我不能在if语句中创建一个变量并在之后使用它。

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

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) 

我能想到的唯一的事情就是做这样的事情

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毕竟。

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