Как я могу получить доступ к полю `struct` в новом` type` этого фрагмента `struct`? - PullRequest
0 голосов
/ 07 апреля 2020

Коды похожи на эти

package main

import "fmt"

type Hello struct {
    ID  int
    Raw string
}

type World []*Hello

func HelloWorld() *World {
    return &World{
        {
            ID:  1,
            Raw: "asd",
        },
        {
            ID:  2,
            Raw: "jkf",
        },
    }
}

func main() {
    something := HelloWorld()

    // What I want to achieve...
    fmt.Println(something[0].Raw) // This should return `"asd"`.
}

Но я получил эту ошибку ---> ./prog.go:29:23: invalid operation: something[0] (type *World does not support indexing). Как я могу получить Raw от something?

1 Ответ

1 голос
/ 07 апреля 2020

Используйте (*something)[0].Raw, потому что something - это указатель типа World.

Нам нужно использовать оператор *, также называемый оператором разыменования, который, если он помещен перед переменной указателя, и возвращает данные в эта память.

fmt.Println((*something)[0].Raw) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...