Akash Shinde
Akash Shinde

Reputation: 955

Filling struct array in golang

I have struct like

type Coverage struct {
  neoCoverage        []NeoCoverage
  ApocCoverage       []ApocCoverage
  ApocConfigCoverage []ApocConfigCoverage
}

And

type NeoCoverage struct {
  Name   string
  Number string
}

So how should i fill coverage struct?

Here how I am Trying.

coverage = Coverage{
 []neoCoverage: NeoCoverage{
     Name:   "xyz",
     Number: "xyz123",
   },
 }

Upvotes: 9

Views: 18755

Answers (2)

Doug Donahue
Doug Donahue

Reputation: 111

You can also omit the redundant Type declarations in the array. Using Alper's code base as example.

package main

import "fmt"

func main() {
    type NeoCoverage struct {
         Name   string
         Number string
    }

    type Coverage struct {
        neoCoverage []NeoCoverage
    }

    coverage := Coverage {
        neoCoverage: []NeoCoverage {
            { Name: "xyz", Number: "xyz123" },
            { Name: "abc", Number: "abc123" },
        },
    }

    fmt.Println(coverage)
}

Output:

{[{xyz xyz123} {abc abc123}]}

Upvotes: 11

Alper
Alper

Reputation: 13220

Something like below

package main

import "fmt"

func main() {
    type NeoCoverage struct {
        Name   string
        Number string
    }

    type Coverage struct {
        neoCoverage []NeoCoverage
    }

    coverage := Coverage {
        neoCoverage: []NeoCoverage {
            NeoCoverage{ Name: "xyz", Number: "xyz123" },
            NeoCoverage{ Name: "abc", Number: "abc123" },
        },
    }

    fmt.Println(coverage)
}

Output

{[{xyz xyz123} {abc abc123}]}

Here is the brief explanation; neoCoverage: []NeoCoverage{} stands for the slice of NeoCoverage and that slice should be populated with NeoCoverage{} elements as in NeoCoverage{ Name: "xyz", Number: "xyz123" }, ...

Upvotes: 7

Related Questions