Thanks I also worried that at the beginning. But when I use this code I find it works correctly. But if I pull it out to test the individual function it doesn't look good. I think you are right the best practice is to return the slice.
For the connInfo struct comparison I learned that comparing them is possible but I don't know how accurate it would be. This is just a simple test. I will look into this issue later. On Tuesday, September 26, 2017 at 8:38:52 AM UTC+8, Keith Randall wrote: > > I see a couple of issues with your code. > > The code you use for removal of an element is right. You've correctly made > sure there is no leak. > > You never return the clients slice back to the caller. Any length > shortening of the clients slice will be lost when the function returns. > You might want to review > https://blog.golang.org/go-slices-usage-and-internals > > I'm skeptical of using struct equality on your connInfo struct. My guess > is you just want the ipAddr and name fields to match, not the net.Conn > itself. It's hard for me to know for sure without seeing the users of this > code, but it looks fishy. > > You probably want a break statement at the end of your if block. Unless > you expect multiple structs to match? > > On Monday, September 25, 2017 at 5:14:22 PM UTC-7, kortschak wrote: >> >> This is not nice if you want to reuse the slice, and still may leak the >> fields. >> >> clients[i] = clients[len(clients)-1] >> // If the current clients[i] is deleted it becomes inaccessible >> // and the ipAddr, name and conn fields potentially leak, so >> // zero them in the last position of the slice. >> clients[len(clients)-1] = connInfo{} >> clients = clients[:len(clients)-1] >> >> >> On Mon, 2017-09-25 at 11:52 -0700, Tamás Gulácsi wrote: >> > https://github.com/golang/go/wiki/SliceTricks >> > >> > clients[i] = clients[0] >> > clients = clients[1:] >> >> >> >> -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.