說說最近工作中go語言踩到的坑

xiaotushaoxia發表於2024-05-28

switch type的case帶多個型別

func Test_switch(t *testing.T) {
	var cca any = uint8(1)

	switch vv := cca.(type) {
	case uint8, uint16:
		fmt.Println(vv == 1, vv)  // false, 1
	}
}

case如果帶多個型別,vv最後還是any

github.com/gorilla/websocket的Conn的Read Write都不能併發呼叫

有個需求,監聽多個chan,然後發給當前連線著的websocket連線 併發呼叫了。第二天自己review的時候感覺彆扭,看了下文件是不可以這樣做的

正確用法

select {
case m :=<- c1:
	conn.Write(m)
case m :=<- c2:
	conn.Write(m)
}

相關文章