登录
首页 >  Golang >  Go问答

Go 语言中检测未被使用的变量条件语句

来源:stackoverflow

时间:2024-03-09 11:48:28 121浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《Go 语言中检测未被使用的变量条件语句》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我遇到一种情况,如果某些东西无法分配变量,我会在条件语句中分配它,但是 go 似乎认为该变量未被使用。

        for index, value := range group.Values {
            timestamp, err := time.Parse(time.RFC3339, value.Timestamp)
            if err != nil {
                strings.ReplaceAll(value.Timestamp, "+0000", "")
                timestamp, err := time.Parse(time.RFC3339, value.Timestamp)
                if err != nil {
                    log.Printf("Error parsing timestamp for point %s: (%s) %v", value.Context+"_"+value.ID, value.Timestamp, err)
                    continue
                }
            }
            event := new(SplunkEvent)
            event.Time = timestamp.Unix()

go 认为条件语句中的变量 timestamp 未被使用。这是为什么?我已经明确在条件之后直接使用了它。


正确答案


嵌套(内部)timestamp 声明遮盖了外部声明 - 因此外部声明永远不会被设置。因此,由于从未使用过内部值,因此编译错误是有效的。

要修复此问题,请将 := 声明的赋值运算符替换为 = 以(重新)使用外部作用域的 timestamp (和 err)值:

timestamp, err = time.Parse(time.RFC3339, value.Timestamp)

本篇关于《Go 语言中检测未被使用的变量条件语句》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>