我在阅读GOLANG-BOOK后开始玩golang。 我试图建立一个简单的TCP聊天。 我创建了一个用户结构,并且我想要听用户数组中的每个user.inbound通道。编译错误
我知道我的问题在于函数writeUser(),因为它等待user.inbound。即时通讯不知道如何正确地使这种类型的用户数组通道。
这是错误,我从编译器收到:
./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的FUNC 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;
}
}
我编辑了你的问题标题 - 考虑到这里没有问题的频道数组。 – 2014-11-04 21:32:44