如何初始化特定的结构格式

时间:2018-12-17 18:48:47

标签: go struct

尽管我已经使用语言超过两个月了,但是我并没有看到自己有这种需求。 我想要初始化下面显示的结构(基本上是初始化Project,然后在内部构造aaa,bbb和ccc结构)。我的问题是我是否可以真正进行初始化而不进行解组。

type example struct {
    Name    string `yaml:"name" json:"name"`
    Key     string `yaml:"key" json:"key"`
    Version string `yaml:"version" json:"version"`
    Project []struct {
        Name string `yaml:"name" json:"name"`
        aaa  struct {
            Name    string `yaml:"name" json:"name"`
            Key     string `yaml:"key" json:"key"`
            xxx struct {
                Version string `yaml:"version" json:"version"`
            } `yaml:"xxx" json:"xxx"`
            zzz struct {
                Version string `yaml:"version" json:"version"`
            } `yaml:"zzz" json:"zzz"`
        } `yaml:"aaa" json:"aaa"`
        bbb struct {
            Name    string `yaml:"name" json:"name"`
            Key     string `yaml:"key" json:"key"`
            xxx struct {
                Version string `yaml:"version" json:"version"`
            } `yaml:"xxx" json:"xxx"`
            zzz struct {
                Version string `yaml:"version" json:"version"`
            } `yaml:"zzz" json:"zzz"`
        } `yaml:"bbb" json:"bbb"`
        ccc struct {
            Name    string `yaml:"name" json:"name"`
            Key     string `yaml:"key" json:"key"`
            xxx struct {
                Version string `yaml:"version" json:"version"`
            } `yaml:"xxx" json:"xxx"`
            zzz struct {
                Version string `yaml:"version" json:"version"`
            } `yaml:"zzz" json:"zzz"`
        } `yaml:"ccc" json:"ccc"`
    } `yaml:"project" json:"project"`
}

我知道我可以通过类似于以下方式进行操作。但是我试图更好地了解这种语言。

type example struct {
    Name    string `yaml:"name" json:"name"`
    Project proyectos }

type proyectos structs{
    [] proyecto
}

type proyecto struct{
    Name string `yaml:"name" json:"name"`
    aaa  struct {
    .....
} `yaml:"project" json:"project"`

我感谢任何可以通过示例为我提供提示的人。

谢谢。

1 个答案:

答案 0 :(得分:2)

实际上看起来不错。我宁愿删除import React from "react"; import './Brewery.css' import { Link } from 'react-router-dom'; import { ButtonToolbar, DropdownButton, MenuItem } from 'react-bootstrap'; class Brewery extends React.Component { constructor(props) { super(props); this.state = { showMenu: false, breweries: [] } } componentDidMount() { fetch("https://api.openbrewerydb.org/breweries") .then(response => response.json()) .then((data) => { this.setState({ breweries: data, }) }) } sortAlpha() { const breweries = [].concat(this.state.breweries) .sort((a, b) => a.name > b.name) this.setState({breweries:breweries}); } render() { const { breweries } = this.state; return( <div className="main-container"> <div className="banner" styles="background-image: linear-gradient(-225deg, rgba(0,101,168,0.6) 0%, rgba(0,36,61,0.6) 50%), url('http://bitterminnesotabrewerytours.com/wp-content/uploads/2014/02/boston-beer-tours-glass.jpg');"> <div className="banner-content"> <h1>Brewery</h1> <p>Find the best brewery in town</p> </div> </div> <div className="container"> <div> <button onClick={() => this.sortAlpha()}>Sort Alphabetically</button> </div> <div className="row"> {breweries.slice(0,10).map((brewery, i) => <div className="col-xs-12 col-sm-4" key={i}> <Link to={`/brewery/${ brewery.id }`}> <div className="card"> <div className="card-description"> <h2>{brewery.brewery_type}</h2> <p>{brewery.city}, {brewery.state}</p> </div> <div className="card-category"><img src="https://img.icons8.com/color/20/000000/beer.png"/> {brewery.name}</div> </div> </Link> </div> )} </div> </div> </div> ) } } export default Brewery; 结构定义,因为我认为这是不必要的-您可以改用proyectos,看起来更干净。

我不想成为那个人,但是您的问题已经在这里得到解答:https://stackoverflow.com/a/24809404/7471182