首页 > 解决方案 > 新旧变量的变量声明和赋值语法

问题描述

在下面的代码中:

func sumDigitsIter(n int) int {
    digit_sum := 0
    for n > 0 {
        n, last := split(n)
        digit_sum += last
    }
    return digit_sum
}

func split(n int) (int, int) {
    return n / 10, n % 10
}

n不能是新n的语法n, last := split(n)

如果没有显式声明last变量,如何创建新变量并将last值重新分配给现有变量n,语法是什么?

因为在python中,我们这样做:

def sumDigitsIter(n):
    digit_sum = 0
    while n > 0:
        n, last = split(n)
        digit_sum = digit_sum + last
    return digit_sum

标签: go

解决方案


使用变量声明声明一个新变量。不要使用简短的变量声明。

func sumDigitsIter(n int) int {
    digit_sum := 0
    for n >= 0 {
        var last int
        n, last = split(n)
        digit_sum += last
    }
    return digit_sum
}

推荐阅读