如何将interface {}转换为字符串?
我正在使用docopt来解析命令行参数。此方法有效,并生成地图,例如
map[<host>:www.google.de <port>:80 --help:false --version:false]
现在,我想将host
and和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
以上是 如何将interface {}转换为字符串? 的全部内容, 来源链接: utcz.com/qa/416986.html