Full code:
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()
}
have an error:
first argument to append must be slice; have *Connection
error in this part of code:
arrayOfConnections = append(&Connection{conn, 1}, 0)
I'm new to Golang and it is really hard to figure out what am I doing wrong. How to rewrite the code so the new connection will be finally append to the slice? Couldn't find the answer on stackoverflow. Hope someone could help. Thank you.
The append should be like this
arrayOfConnections = append(arrayOfConnections, &Connection{conn, 1})
The append builtin function follows the signature
func append(s []T, vs ...T) []T
When s is the slice you want to append and vs are the elements you want to append to s, and then de function returns a new slice with all the elements appended.