当前位置: 首页 > 面试题库 >

如何避免“声明且未使用”的烦人错误

谷梁承宣
2023-03-14
问题内容

我正在学习Go,但感到有点烦人,在编译时,我不应该保留任何变量或包。

这确实让我放慢了脚步。例如,我只想声明一个新软件包并计划以后使用它,或者只是取消注释某些命令以进行测试。我总是会收到错误,需要对所有这些用法进行评论。

Go中有什么方法可以避免这种检查吗?


问题答案:

该错误将迫使您编写更好的代码,并确保使用声明或导入的所有内容。它使阅读他人编写的代码更加容易(您始终可以确保将使用所有声明的变量),并避免了一些可能的死代码。

但是,如果您确实想跳过此错误,则可以使用空白标识符(_):

package main

import (
    "fmt" // imported and not used: "fmt"
)

func main() {
    i := 1 // i declared and not used
}

变成

package main

import (
    _ "fmt" // no more error
)

func main() {
    i := 1 // no more error
    _ = i
}

正如kostix在以下评论中所说,您可以在FAQ中找到Go小组的正式职位:

未使用的变量的存在可能表明存在错误,而未使用的导入只会减慢编译速度。在代码树中积累足够的未使用导入,事情可能会变得很慢。由于这些原因,Go都不允许。



 类似资料:
  • 有没有办法避免这种签到围棋?

  • 问题内容: 我收到此错误消息,说我没有使用变量……但是在我的菜鸟眼中,看起来我在: 谁能指出我对语言的缺失?我认为这与vs 和作用域有关,但我不确定。 问题答案: 在您的for循环声明了一个新的变量,其阴影外。将其变成平原以解决问题。 顺便说一下,为了获得相同的精度和更快的速度,您可以尝试以下实现,该实现一次执行两个步骤:

  • 问题内容: 我偶然发现了一个奇怪的问题,下面的代码无法编译: 错误(代码是linter推荐的代码)。: 注意,确实使用了该变量。 但是,如果我添加了else块-一切都会按预期编译: 这看起来像是编译器中的错误,还是一个已知问题?任何想法?(我正在使用go 1.11) 编辑:到目前为止的所有被告。按照:https : //golang.org/ref/spec#Short_variable_decl

  • 问题内容: 如果我有这样的列表理解: 有效地创建一个新列表,该列表中的每个元素都包含一个空字符串,我从不使用。有没有更干净的方式编写此代码,所以我不必声明未使用的变量? 问题答案: 是for循环和元组分配中被忽略成员的标准占位符名称,例如 顺便说一句,您的列表可以在没有列表理解的情况下编写(假设您要创建不可变成员(如字符串,整数等)的列表)。

  • 问题内容: 我正在学习Google的新语言Go。我只是在尝试一些东西,我注意到,如果您声明一个变量并且不对其执行任何操作,则go编译器(在我的情况下为 8g )将无法 编译,并显示以下错误:。令我惊讶的是,大多数语言编译器只是 警告 您有关未使用的变量,但仍会编译。 无论如何,我能解决这个问题吗?我检查了编译器的文档,但看不到任何会改变此行为的内容。有没有一种方法可以删除以进行编译? 问题答案:

  • 我正在将oracle从10升级到12,对于这个特定的项目,我遇到了以下错误: 似乎它没有识别我在DataSource上添加的配置: 我们使用的是Java 8,我们对代码有这些依赖关系: 问题是它正在为另一个项目工作(与这个项目具有相同的结构,但由于某种原因它在这里不起作用) 是否有任何遗漏或我可以找到问题并解决问题的地方?