如何在golang中的struct中添加项目到数组

Clu*_*tch 2 arrays struct go

使用下面的代码如何将IP结构添加到Server结构的ips数组?

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??}
}
Run Code Online (Sandbox Code Playgroud)

我甚至让ips阵列正确吗?使用指针更好吗?

two*_*two 8

切片文字看起来像[]net.IP{ip}(或者[]net.IP{ip1,ip2,ip3...}.风格上,带有名称的struct初始化器是首选的,所以Server{id: o, ips: []net.IP{ip}}更标准.整个代码示例包含这些更改:

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)
}
Run Code Online (Sandbox Code Playgroud)

您询问

我甚至让ips阵列正确吗?使用指针更好吗?

您不需要使用指向切片的指针.切片是包含指针,长度和容量的小结构.