Как распечатать переменные структуры в консоли?

Как напечатать в консоли все поля этой структуры в Golang?

type Project struct {
    Hash    string  `json:"hash"`
    Name    string  `json:"name"`
    Data    Data    `json:"data"`
    Joins   Joins   `json:"joins"`
}

Ответы (1 шт):

Автор решения: Falchio

Для распечатки struct с полями можно воспользоваться функцией fmt.Printf.
Можете ознакомиться с документацией пакета fmt. Потребуется использовать выражение для форматирования %+v.

Пример:

package main

import "fmt"

type Project struct {
    Hash  string `json:"hash"`
    Name  string `json:"name"`
    Data  Data   `json:"data"`
    Joins Joins  `json:"joins"`
}

type Data struct {
    DataType    string `json:"dataType"`
    Description string `json:"description"`
}

type Joins struct {
    UnknownVar string `json:"unknown_var"`
}

func main() {
    project := Project{Hash: "myhash", Name: "My Project", Data: Data{DataType: "data type string", Description: "my description"}, Joins: Joins{UnknownVar: "my var"}}
    fmt.Printf("%+v\n", project)
}

Вывод:

{Hash:myhash Name:My Project Data:{DataType:data type string Description:my description} Joins:{UnknownVar:my var}}
→ Ссылка