If statement 什么';“的优点是什么?”;如果用简短的陈述;

If statement 什么';“的优点是什么?”;如果用简短的陈述;,if-statement,go,If Statement,Go,在go lang.ref中使用“If with a short statement”有什么好处: 如果v:=math.Pow(x,n);如果您不需要“if”范围之外的“v”,那么v

在go lang.ref中使用“If with a short statement”有什么好处:

如果v:=math.Pow(x,n);如果您不需要“
if
”范围之外的“
v
”,那么v
很有趣

在“”中提到它

由于
if
switch
接受初始化语句,因此通常会看到用于设置局部变量的语句

第二种形式允许在
if
子句之后使用“
v


真正的区别在于您需要该变量的范围:在
if
子句中定义该变量可以将使用该变量的范围保持在最小值。

。大多数情况下,我更喜欢第二种形式,因为它清楚地将动作(“计算
x
n
的幂”)与检查(“检查v是否在某个限制范围内”)分开,而第一种形式将两者混合在
math.Pow()中
看起来好像它只是为了检查结果然后扔掉而计算出来的。Ita现在有了意义。“if”的范围,所以在这个意义上是不同的。4行形式实际上比
\n
短1个字符;
@NickCraig-Wood是的,我坚持在我的答案末尾的实际区别:这都是关于范围,而不是范围字符数;)
if v := math.Pow(x, n); v < lim {
    return v
}
v := math.Pow(x, n)
if v < lim {
    return v
}
if err := file.Chmod(0664); err != nil {
    log.Print(err)
    return err
}