Clutch
Clutch

Reputation: 7590

How to add item to array in struct in golang

With the code below how do I add an IP struct to the Server struct's ips array?

import (
    "net"
)

type Server struct {
    id int
    ips []net.IP
}

func main() {
    o := 5
    ip := net.ParseIP("127.0.0.1")
    server := Server{o, ??ip??}
}

Do I even have the ips array correct? Is it better to use a pointer?

Upvotes: 4

Views: 33288

Answers (1)

twotwotwo
twotwotwo

Reputation: 30007

A slice literal looks like []net.IP{ip} (or []net.IP{ip1,ip2,ip3...}. Stylistically, struct initializers with names are preferred, so Server{id: o, ips: []net.IP{ip}} is more standard. The whole code sample with those changes:

package main

import (
    "fmt"
    "net"
)

type Server struct {
    id  int
    ips []net.IP
}

func main() {
    o := 5
    ip := net.ParseIP("127.0.0.1")
    server := Server{id: o, ips: []net.IP{ip}}
    fmt.Println(server)
}

You asked

Do I even have the ips array correct? Is it better to use a pointer?

You don't need to use a pointer to a slice. Slices are little structures that contain a pointer, length, and capacity.

Upvotes: 13

Related Questions