完整代码:
package main
import (
"net"
)
var arrayOfConnections []*Connection
type Connection struct {
conn net.Conn
id int
}
func main() {
serv, _ := net.Listen("tcp", ":8080")
defer serv.Close()
connectionHandle(serv)
}
func connectionHandle(serv net.Listener) {
conn, _ := serv.Accept()
arrayOfConnections = append(&Connection{conn, 1}, 0)
conn.Write([]byte("one"))
conn.Close()
}
有错误:
附加的第一个参数必须是slice;具有* Connection
这部分代码中的错误:
arrayOfConnections = append(&Connection {conn,1} ,0)
我是Golang的新手,很难弄清楚我在做什么错。如何重写代码,以使新连接最终添加到切片中?在stackoverflow上找不到答案。希望有人可以帮忙。谢谢。
答案 0 :(得分:1)
附件应该是这样的
arrayOfConnections = append(arrayOfConnections, &Connection{conn, 1})
append内置函数跟随签名
func append(s []T, vs ...T) []T
当s是要添加的切片,而vs是要添加到s的元素时,然后de function返回一个新的切片,其中添加了所有元素。