0

This is my code:

package main

import (
    "fmt"
)
type person struct {
        //name  [][]string{};
        name [][]string
    }  

func main() {
var people = map[string]*person{}

people["first person"] = &person{name:{{"My name","30"}}}
    fmt.Println(people["first person"])
}

I have an error:

missing type in composite literal

I want output as [[My name,30]]

Could someone help me?

Arpit Aggarwal
  • 27,626
  • 16
  • 90
  • 108
nagulan
  • 41
  • 2
  • 3

2 Answers2

1

Here is working example. You must declare type of composed literal before using.

package main

import (
    "fmt"
)

type person struct {
    //name  [][]string{};
    name [][]string
}

func main() {
    var people = map[string]*person{}

    people["first person"] = &person{name: [][]string{{"John", "30"}}}
    fmt.Println(people["first person"])
}
1

You are missing type while creating an instance pointer and initializing it, it should be:

&person{name: [][]string{{"My name, 30"}}}

Below is the working example:

package main

import (
    "fmt"
)

type person struct {
    name [][]string
}

func main() {
    var people = map[string]*person{}
    people["first person"] = &person{name: [][]string{{"My name, 30"}}}
    fmt.Println(people["first person"].name)
}
Arpit Aggarwal
  • 27,626
  • 16
  • 90
  • 108