完整代码:

   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/

10-15 16:15