如何在没有 goto 语句的情况下改进我的代码?
我的函数是从服务器读取数据并将数据发送到另一个处理数据的函数,我不得不添加一个 goto 语句来处理断开的连接情况,我没有找到更好的方法来做到这一点。
你能帮我一些建议吗?
func Reader(source string, proto string, chOutput chan string) {
init:
fmt.Println("Conectando con Source:", source)
conn, err := net.Dial(proto, source)
if err != nil {
fmt.Println("Error:", err.Error())
}
defer conn.Close()
reader := bufio.NewReader(conn)
for {
line, err := reader.ReadString('\n')
if err != nil {
fmt.Println("Error:", err.Error())
time.Sleep(1 * time.Second)
goto init
}
fmt.Println("Enviando dato a Buffer:", line)
chOutput <- line
}
}
我的功能是一个 goroutine :
func main(){
mychan:= make(chan string)
go Reader(source, proto, mychan)
go Process(mychan)
...
}
goto 或标签是解决重试连接的最佳方法吗?有没有另一种标准的方法来做到这一点?
拉风的咖菲猫
相关分类