完整代码:
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;有*连接
这部分代码中的错误:
arrayOfConnections = append(&Connection {conn,1} ,0)
我是Golang的新手,很难弄清楚我在做什么错。如何重写代码,以便新连接最终可以附加到 slice 中?在stackoverflow上找不到答案。希望有人可以帮忙。谢谢。
最佳答案
附件应该是这样的
arrayOfConnections = append(arrayOfConnections, &Connection{conn, 1})
append内置函数跟随签名
func append(s []T, vs ...T) []T
当s是要添加的 slice ,而vs是要添加到s的元素时,然后de function返回一个新的 slice ,其中添加了所有元素。
关于go - 将结构放入 slice 时出现golang错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51771195/