GOLANG-BOOKを読んでからgolangをいじり始めました。単純な TCP チャットを構築しようとしています。ユーザー構造体を作成しました。ユーザー配列からすべての user.inbound チャネルをリッスンしたいと思います。
ここでの問題は、user.inbound を待っているため、関数 writeUser() にあることを知っています。ユーザーの配列でこの種のチャネリングを適切に行う方法がわかりません。
これは、コンパイラから受け取ったエラーです。
./chatserver.go:22: syntax error: unexpected LCHAN, expecting )
./chatserver.go:25: non-declaration statement outside function body
./chatserver.go:31: non-declaration statement outside function body
./chatserver.go:32: syntax error: unexpected }
- 22行目は関数 writeUser() です
そして、これは私のコードです:
type User struct {
name string
inbound chan string
outbound chan string
conn net.Conn
}
func writeUser(user.inbound chan string) {
// how can I get the user connection?
err := gob.NewDecoder(user.conn).Encode(inbound)
if err != nil {
fmt.Println("Error: ", err)
}
}
func (chat *Chat) broadcast(username string, message string) {
outboundMessage := username + ": " + message;
for _, user := range chat.users {
user.inbound <- outboundMessage;
}
}