goto 문없이 코드를 개선하려면 어떻게해야합니까?끊어진 연결의 경우 goto 문을 사용하지 않고 네트워크 코드를 개선하십시오.
내 함수는 서버에서 읽고 데이터를 처리하는 다른 함수에 데이터를 를 보내고, 내가 연결이 끊어진 경우를 처리하기 위해 고토 문을 추가했다, 내가 할 수있는 더 좋은 방법을 찾을 수 없습니다 그.
몇 가지 조언을 제공해 주시겠습니까? 고토 또는 라벨이 재시도 연결을 해결하는 가장 좋은 방법은
func main(){
mychan:= make(chan string)
go Reader(source, proto, mychan)
go Process(mychan)
...
}
인가 :
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입니까? 다른 표준 방법이 있습니까?
그게 내가 찾고 있었어, 고마워. – Jzala