如何解决go报告卡中的“文件未处理”
我有一个围棋项目,我想在其中生成围棋成绩单 (https://goreportcard.com/)
这张成绩单的一个特点是它运行
gofmt -s
在所有文件上。
我的 repo 包含大约 25 个 Go 文件,唯一提出的标志是这个,在六个文件上:
Line 1: warning: file is not gofmted with -s (gofmt)
我一直在 Google 上搜索 gofmt
,但我真的找不到这实际上意味着什么。
以下是引发错误的文件示例:
package services
import (
"github.com/heyjoakim/devops-21/models"
log "github.com/sirupsen/logrus"
)
var d = GetDBInstance()
// GetUserID returns user ID for username
func GetUserID(username string) (uint,error) {
var user models.User
getUserIDErr := d.db.First(&user,"username = ?",username).Error
if getUserIDErr != nil {
log.WithFields(log.Fields{
"err": getUserIDErr,"username": username,}).Error("Error in GetUserID")
}
return user.UserID,getUserIDErr
}
这是一个不会引发错误的文件:
package services
import (
"strconv"
"github.com/heyjoakim/devops-21/models"
log "github.com/sirupsen/logrus"
)
func UpdateLatest(latest int) {
var c models.Config
err := d.db.First(&c,"key = ?","latest").Error
if err != nil {
log.WithField("err",err).Error("Latest does not exist: DB err")
c.ID = 0
c.Key = "latest"
c.Value = strconv.Itoa(latest)
d.db.Create(&c)
} else {
err := d.db.Model(&models.Config{}).Where("key = ?","latest").Update("Value",latest).Error
if err != nil {
log.WithField("err",err).Error("UpdateLatest: DB err")
}
}
}
我真的不明白为什么一个会在第 1 行引发一些错误,而另一个却没有?
这个标志是什么意思?
解决方法
命令 gofmt -s myfile.go
将格式化文件打印到标准输出。格式化文件的 -s
标志 applies simplifications。
运行 gofmt -s -d myfile.go
查看原始文件和格式化文件之间的差异。
运行 gofmt -s -w myfile.go
将文件更新为所需的格式。
将 myfile.go
替换为 .
以对目录中的所有文件进行操作。
gofmt 命令的文档是 here。
您的文件未格式化。在目录中运行 gofmt -s -w .
以修复文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。