![image.png](https://static.studygolang.com/190717/ea6bcf28f4c319b54ebb4781018f3af5.png)
新手请教一下像这种 业务处理逻辑都一样的,就是参数类型不一样的,怎么样能有效的复用代码?只想用一个方法传个chan进来 就能够实现一样的效果
2楼 <a href="/user/jou66jou" title="@jou66jou">@jou66jou</a> 顺便请教一下 在做类型断言的时候 怎么样动态验证
比如 if f,ok:=xx.(chan A) 这里面的A能不能做成动态的?我传个A就断言成A 传个B就断言成B
#4
更多评论
```go
//隨手測試用
package main
import (
"encoding/json"
"fmt"
)
type A struct {
Name string `json:"name"`
}
type B struct {
Age int `json:"age"`
}
type hub struct {
C1 chan interface{}
C2 chan interface{}
}
func do(c chan interface{}) {
for k := range c {
json, _ := json.Marshal(k)
fmt.Println(string(json))
}
}
func main() {
hub := &hub{make(chan interface{}), make(chan interface{})}
go func() {
hub.C1 <- A{"jaseHuang"}
hub.C2 <- B{25}
}()
go do(hub.C1)
go do(hub.C2)
for {
}
}
```
#1