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

如何从Go中的字符串按路径导入包?

庄欣然
2023-03-14
问题内容

我有一个名称为package的字符串(例如“ my / package / test”),我想导入该字符串并从package调用一些函数。

像这样:

func init() {
  var pkg string = "test/my/pkg"
  import pkg
  pkg.Test()
}

PS。感谢帮助


问题答案:

Go语言不允许您在示例中提到的内容。这是一个有意识的选择。我认为,这种选择的原因与编译器的性能以及机器对代码的理解容易程度有关。例如,这可以启用诸如gofix之类的工具,这些工具可以部分修复Go代码,而无需用户干预。

它还使程序员可以清楚地看到程序使用的所有静态导入的程序包。

另请参阅Go语言规范中有关源文件组织的语法规则。

关于在运行时动态加载程序包:Go不支持在运行时加载程序包。将来的Go运行时可能会实现此功能(例如,偶尔会在golang-
nuts邮件列表中的消息中请求它),但是当前状态是不支持此功能。



 类似资料:
  • 有几个关于字符串操作的问题,但我找不到一个可以让我做以下事情的答案-我认为应该很简单。。。 我有一个DataFrame,其中包括一个包含文件名和路径的列 下面生成一个代表性的示例数据帧: 我想以字符串的“文件名”部分结束。有大量的行,并且路径不是常量,因此我不能使用<code>str.replace 我可以像这样去掉最右边的. csv部分: 但是我无法使我读过的任何方法都能够删除字符串左侧的路径部

  • 问题内容: 你好!今天,我学习了在mssql中连接字符串的技术。由于我从未在mssql中使用过xml,而google却没有帮助,所以我需要问你。 让我们想象一下默认情况。我们需要连接表中的一些字符串: 所以我得到这样的东西: 好的。它工作正常。但是我有两个非常相似的连接块。区别只是结果字符串看起来像这样: 和 因此,我可以使用不同的字符串构造函数编写2个非常相似的代码块(已经完成,btw),或尝试

  • 问题内容: 我想替换原始字符串中的第n个字符。我可以使用来从字符串中访问第n个字符,但是当我给赋值时,会出现错误。 问题答案: 之所以发生这种情况,是因为它实际上是一个字符串并且是不可变的。如果适当地声明了它(作为字节片),则可以在尝试时将其分配。这是一个例子。 https://play.golang.org/p/N1sSsfIBQY 另外,您也可以按照其他答案中的说明使用切片。

  • 问题内容: New Go程序员在这里-如果这是破旧的领域,我深表歉意,但是我的Google搜索并没有找到我想要的答案。 简短版本:作为核心Go项目外部的程序员,我是否可以强制使用特定名称导入我的软件包。如果是这样,怎么办? 较长版本:我最近尝试从以下GitHub存储库中安装软件包,其中包含以下内容 程序包已正确下载到我的工作区中,但是当我尝试导入它时,出现以下错误 $ go运行main.go ma

  • 问题内容: 我有一个对象(来自一个对象)。 将整个流转换为对象的最有效方法是什么? 问题答案: 编辑: 从1.10开始,strings.Builder存在。例: 下面的过时信息 简短的答案是,它效率不高,因为转换为字符串需要对字节数组进行完整复制。这是执行所需操作的正确方法(非有效方法): 此副本是作为保护机制完成的。字符串是不可变的。如果可以将[] byte转换为字符串,则可以更改字符串的内容。