> underscore_
在go中导入go>
_
complos go> e.g complos go in go complos fore> e.g.指定的软件包(在此示例中),但忽略了其包含的任何导出名称。 这意味着您无法直接访问当前文件中该软件包中定义的功能,常数,变量或类型。 但是,将仍将执行软件包的_
函数(如果存在)。 这很重要,因为某些软件包执行至关重要的初始化任务或在系统的其他部分进行注册。 例如,某些软件包可能会以全局注册表注册或设置必要的运行时配置。 使用import _ "path/filepath"
>允许您在不产生未使用的进口警告的情况下利用这些初始化的副作用。path/filepath
>init()
>如何避免使用下划线的未使用的导入警告? 如果您有一个包装需要导入其副作用(例如初始化),但实际上您实际上没有使用其当前文件中的任何导出实体,只需在您的导入语句中的软件包名称以底范的范围前缀。_
>
>_
import ( "fmt" _ "net/http/pprof" // Import for pprof side effects, not directly used in this file ) func main() { fmt.Println("Hello, world!") }
net/http/pprof
_
选择性地导入GO软件包的一部分?> not _
not>允许选择性地导入软件包的一部分。它要么导入整个软件包(包括其函数),要么根本不会导入它。 没有机制仅导入包装的特定部分,同时使用下划线忽略其他部分。如果您只需要包装的特定部分,则应仅导入这些特定零件,并避免使用下划线。 使用下划线专门用于您需要包装的初始化但不直接使用其当前文件中的导出标识符的情况。 选择性导入通常仅通过仅导入必要的元素来处理,这可能是通过重命名init()
>关键字的重命名。
以上是Go语言中import语句下划线_的作用是什么的详细内容。更多信息请关注PHP中文网其他相关文章!