面试题答案
一键面试package main
import (
"fmt"
)
func worker(resultChan chan<- interface{}) {
defer close(resultChan)
// 模拟处理数据
data := 10
if data > 5 {
err := fmt.Errorf("处理数据 %d 时出错", data)
resultChan <- err
return
}
resultChan <- fmt.Sprintf("处理成功: %d", data)
}
func main() {
resultChan := make(chan interface{})
go worker(resultChan)
for res := range resultChan {
if err, ok := res.(error); ok {
fmt.Printf("捕获到错误: %v\n", err)
} else {
fmt.Println(res)
}
}
}