评估但未使用

时间:2017-06-29 01:29:12

标签: go

我不确定这里发生了什么。

我正在使用Project Euler#8并且已经提出以下函数来处理获得5位数的产品:

func fiveDigitProduct(n int) int {
    localMax := n + 5
    product := 1
    for n; n < localMax; n++ {
        f, _ := strconv.Atoi(input[n])
        product *= f
    }
    return product
}

但是,我一直收到警告“已评估但未使用”。我不知道为什么会这样。

2 个答案:

答案 0 :(得分:1)

For StatementInitStmt(初始化声明)实际上并未进行任何初始化。您要求编译器评估n但不对其执行任何操作,这是编译器所抱怨的。由于您不需要为循环初始化n,只需执行以下操作:

for ; n < localMax; n++ {

答案 1 :(得分:0)

for循环的初始化部分以及post部分(你增加n的地方)需要是simple statement(并且只是“n”不是语句,它将是一个表达式,所以是什么你试图做的是语法不正确)。如果你使init部分n = n或n:= n(for循环范围内的新变量声明),它将是一个有效的语句并且可以工作。正如上面的帖子中所建议的那样,由于你不打算在init部分做任何事情,所以最好不要这样做。