新手请问这种情况如何有效复用代码

lxl518000 · · 750 次点击
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 ( &#34;encoding/json&#34; &#34;fmt&#34; ) type A struct { Name string `json:&#34;name&#34;` } type B struct { Age int `json:&#34;age&#34;` } 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 := &amp;hub{make(chan interface{}), make(chan interface{})} go func() { hub.C1 &lt;- A{&#34;jaseHuang&#34;} hub.C2 &lt;- B{25} }() go do(hub.C1) go do(hub.C2) for { } } ```
#1
更簡化hub可以只要一個channel
#2