2 回答
TA贡献1793条经验 获得超6个赞
不。有关推理,请参阅以下常见问题解答:
常见问题解答:我可以停止这些关于我未使用的变量/导入的投诉吗?
未使用的变量的存在可能表示存在错误,而未使用的导入只会减慢编译速度,随着时间的推移,随着程序积累代码和程序员,这种影响会变得很大。由于这些原因,Go 拒绝使用未使用的变量或导入来编译程序,用短期的便利换取长期的构建速度和程序清晰度。
尽管如此,在开发代码时,临时创建这些情况是很常见的,并且在程序编译之前必须编辑它们可能很烦人。
有些人要求提供一个编译器选项来关闭这些检查或至少将它们减少为警告。但是,还没有添加这样的选项,因为编译器选项不应该影响语言的语义,并且因为 Go 编译器不报告警告,只报告阻止编译的错误。
没有警告有两个原因。首先,如果值得抱怨,就值得在代码中修复。(如果它不值得修复,那就不值得一提了。)第二,让编译器生成警告鼓励实现警告可能使编译嘈杂的弱情况,掩盖应该修复的实际错误。
不过,解决这种情况很容易。使用空白标识符让未使用的东西在您开发时保持不变。
您可以做的是在暂时想要排除某些内容时使用空白标识符,例如
import (
"fmt"
_ "time" // This will make the compiler stop complaining
)
如今,大多数 Go 程序员使用goimports工具,该工具会自动重写 Go 源文件以获得正确的导入,从而消除了实践中未使用的导入问题。这个程序很容易连接到大多数编辑器,以便在编写 Go 源文件时自动运行。
TA贡献1887条经验 获得超5个赞
尝试从 gin.Context 获取 HTTP 请求并从其 Body 属性中读取:
func(c *gin.Context) {
decoder := json.NewDecoder(c.Request.Body)
var t struct {
Name string `json:"json_name"`
Title string `json:"title"`
Url string `json:"url"`
}
err := decoder.Decode(&t)
if err != nil {
panic()
}
log.Println(t)
}
- 2 回答
- 0 关注
- 165 浏览
添加回答
举报