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

如何将interface {}转换为字符串?

富钧
2023-03-14
问题内容

我正在使用docopt来解析命令行参数。此方法有效,并生成地图,例如

map[<host>:www.google.de <port>:80 --help:false --version:false]

现在,我想将hostand和port值连接到一个字符串,两个值之间用冒号表示。基本上,诸如:

host := arguments["<host>"] + ":" + arguments["<port>"]

不幸的是,这不起作用,因为我收到了错误消息

无效的操作:arguments [“”] +“:”(类型不匹配的接口{}和字符串)

因此,显然我需要将从映射中获得的值(就是interface{},所以可以是任何东西)转换为字符串。现在我的问题是,我该怎么做?


问题答案:

您需要添加类型断言
.(string)。这是必需的,因为地图的类型是map[string]interface{}

host := arguments["<host>"].(string) + ":" + arguments["<port>"].(string)

Docopt的最新版本返回OPTS对象,对转换方法:

host, err := arguments.String("<host>")
port, err := arguments.String("<port>")
host_port := host + ":" + port


 类似资料:
  • 问题内容: 目前,我目前正在处理一些代码,其中涉及类型为var的 它具有价值,我可以像这样轻松访问: 很好,但是我希望能够使用该 函数,由于它需要type 而不是type ,因此通常会出错。 可以使用该功能的最合适的解决方案是什么,我想也许是某种转换方法? 问题答案: 您需要构造一个新的type数组才能使用: 请参阅相关的Golang常见问题解答条目:我可以将[] T转换为[]接口{}吗?

  • 问题内容: 我有一个,我需要一个。如何从一个转换为另一个? 问题答案: 好问题。我有以下五种 6种方法可以做到这一点。 注意:返回。因此有效地两者是相同的。 调用,这又设置了数组。 另一方面,调用以下程序包私有构造函数。 从源代码中的Java 8的源代码 因此似乎是最有效的方法,在这两个存储器和速度方面,用于转换char到String。

  • 问题内容: 我只想编写这样的代码: 我以为可以代表任何类型,所以也可以代表任何类型,现在我知道我错了,是一个整体类型,不能视为。 因此,有人可以帮助我如何使此代码正常工作,或其他解决方案吗? PS :我知道或可以相互转换,但是实际上这并不是我的意图,可能还有另一种类型,而不是and 。 问题答案: 现在我知道我错了,是一个整体类型,不能视为。 是的,那是因为它是它自己的类型(而不是其他任何类型的“

  • 问题内容: 我正在尝试从JSON获取值并将其强制转换为int,但它不起作用,而且我不知道如何正确执行。 这是错误消息: 和代码: 问题答案: 代替 你想要一个类型断言: 您不能转换接口类型值的原因是参考的规范部分中的以下规则: 转换是形式的表达式,其中是类型,并且是可以转换为类型T的表达式。 … 在以下任何一种情况下,可以将非恒定值x转换为类型T: x可分配给T。 x的类型和T具有相同的基础类型。

  • 问题内容: 如何将字符串转换为long。 为了你 所以你怎么走却又漫长。 问题答案: 这是一种常用的方法: 还有一种方法:区别在于返回原语而返回对象。

  • 问题内容: 如何在Java中转换String为CharSequence? 问题答案: 从 IS-A开始,您可以在需要的地方传递,也可以将分配给: 如果要将a转换为,则使用必须由的每个具体实现实现的方法。 希望能帮助到你。