Go 编译已声明但未使用

我在使用 Go 时遇到了一些问题,我确实在其中使用了标记 tag = true


//  project main.go

package main


import (

    "fmt"

)


func main() {

    var m, odd1, odd2, in1, in2 int

    tag := false

    fmt.Scan(&m)

    for i := 0; i < m; i++ {

        fmt.Scan(&in1, &in2)

        odd1 += in1

        odd2 += in2

        if (in1+in2)&1 == 1 {

            tag = true

        }

    }

    if odd1&1 == 0 && odd2&1 == 0 {

        fmt.Print("0")

        return

    }

    if odd1&1 == 0 && odd2&1 == 1 || odd1&1 == 1 && odd2&1 == 0 {

        fmt.Print("1")

        return

    }

    fmt.Print("-1")

}


大话西游666
浏览 260回答 2
2回答

胡说叔叔

“未使用”可以理解为“没有效果”。当您分配true给 时tag,这不会传播到外部,也不会对函数的结果产生任何影响。如果您tag在条件中使用或返回它,那么编译器就不会再抱怨了。

茅侃侃

你没有使用标签。你再次分配给它。使用意味着它在某物的右手边:if tag { or if tag && odd1 && 1 == testVal {
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go