登录
首页 >  Golang >  Go问答

使用Golang构建类型结构列表

来源:stackoverflow

时间:2024-02-16 09:12:23 105浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《使用Golang构建类型结构列表》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我想使用我的 struct like list,但 ide 无法提供使用的机会。 我知道,有语法问题,但我找不到真正的语法。

我不知道我的代码错误在哪里。

使用结构列表时正确的语法是什么?

package main

import (
    "encoding/json"
    "fmt"
)

type Student struct {
    Firstname string   `json:"firstname"`
    Lastname  string   `json:"lastname"`
    Email     string   `json:"email"`
    Languages []string `json:"languages"`
    Profile   []Profile
}

type Profile struct {
    Username  string            `json:"username"`
    Followers int               `json:"followers"`
    Grades    map[string]string `json:"grades"`
}

func main() {

    var John Student

    // defining struct

    John = Student{
        Firstname: "John",
        Lastname:  "Miller",
        Email:     "[email protected]",
        Profile: Profile{
            {
                Username:  "Miller_267",
                Followers: 1988,
                Grades:    map[string]string{"Education Level": "master", "University": ""},
            },
            {
                Username:  "John Miller",
                Followers: 1997,
                Grades:    map[string]string{"Education Level": "master", "University": "Leicsheter University"},
            },
        },
        Languages: []string{"Eng", "Esp"},
    }

    res, err := json.MarshalIndent(John, "", " ")
    if err != nil {
        panic(err)
    }

    fmt.Println(string(res), "\n", err)
}

在上面的语法中我的错误是什么?


正确答案


您需要在文字中使用切片,以匹配类型定义:

package main

import (
   "encoding/json"
   "os"
)

type profile struct {
   Followers int
   Username string
}

type student struct {
   Firstname string
   Profile []profile
}

func main() {
   john := student{
      Profile: []profile{
         {1988, "Miller_267"}, {1997, "John Miller"},
      },
   }
   json.NewEncoder(os.Stdout).Encode(john)
}

本篇关于《使用Golang构建类型结构列表》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>