完整代码:
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()
}
有一个错误:
first argument to append must be slice; have *Connection
这部分代码错误:
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函数返回一个新的 slice ,所有元素都追加。
关于go - 将结构放入 slice 时出现 golang 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51771195/