gpt4 book ai didi

go - 无法将 String 转换为 *net.TCPlistener 类型

转载 作者:数据小太阳 更新时间:2023-10-29 03:36:25 25 4
gpt4 key购买 nike

我想将字符串放入 net.Listener 中,但出现错误:

./server.go:26:23: cannot use mainServer (type interface {}) as type string in argument to net.Listen: need type assertion
./server.go:27:28: cannot use gpServer (type interface {}) as type string in argument to net.Listen: need type assertion

这是我的代码:

  viper.SetConfigFile("config.json")
viper.AddConfigPath(".")
viper.SetConfigName("config")
viper.ReadInConfig()
fmt.Printf("Using config: %s\n", viper.ConfigFileUsed())
mainServer := viper.Get("mainServer.port")
gpServer := viper.Get("gpServer.port")

fmt.Println(mainServer,gpServer)



fmt.Println("started main server")
ln, _ := net.Listen("tcp", mainServer)
gp_conn, _ := net.Listen("tcp", gpServer)

它是我的 config.json :

    "mainServer": {
"host": "",
"port": ":2323",
"enabled": true
},
"gpServer": {
"host": "",
"port": ":3232",
"enabled": true
}
}

有人可以解释一下我如何将字符串转换为 net.TCPListener 类型吗?发送

最佳答案

我相信 viper.GetString 方法会比 viper.Get 更好,基于文档:https://godoc.org/github.com/spf13/viper

mainServer := viper.GetString("mainServer.port")
gpServer := viper.GetString("gpServer.port")

但是,您可以直接断言类型...这是不明智的,因为如果类型不是字符串,它会导致 panic 。

ln, _ := net.Listen("tcp", mainServer.(string))
gp_conn, _ := net.Listen("tcp", gpServer.(string))

关于go - 无法将 String 转换为 *net.TCPlistener 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55306395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com