将struct放入切片时出现golang错误

完整代码:


   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的新手,很难弄清楚我在做什么错。如何重写代码,以便新的连接最终将附加到切片中?在stackoverflow上找不到答案。希望有人能帮忙。谢谢你。


慕神8447489
浏览 255回答 1
1回答

开满天机

附件应该是这样的arrayOfConnections = append(arrayOfConnections, &Connection{conn, 1})append内置函数跟随签名func append(s []T, vs ...T) []T当s是要附加的切片,而vs是要附加至s的元素时,然后de function返回一个新的切片,其中附加了所有元素。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go