gpt4 book ai didi

go - 在 struct golang 中打印一个 struct

转载 作者:数据小太阳 更新时间:2023-10-29 03:16:01 29 4
gpt4 key购买 nike

我想打印结构中的某个项目,即结构中的某个项目。示例:
假装我已经制作了一个蓝图结构,并且正在制作一个新的
假设我有一个 myshapes 结构,其中包含标题、圆圈和正方形的数量

car := blueprints{
dots: 5,
lines: 25,
shapes: []myshapes{
myshapes{
title:"car #1",
circles:5,
squares:7,
},
myshapes{
title:"car #2",
circles:2,
squares:14,
},
}

如何打印:

title:"car #1"
circles:5
squares:7
title:"car #2"
circles:2
squares:14

最佳答案

下面的示例显示了如何打印结构的特定字段值:

type child struct {
name string
age int
}

type parent struct {
name string
age int
children child
}

func main() {
family := parent{
name: "John",
age: 40,
children: child{
name: "Johnny",
age: 10,
},
}

fmt.Println(family.children.name); // Prints "Johnny"
}

上面的代码将打印“Johnny”,这是父结构中结构的值。然而,该代码没有多大意义,因为该字段是 children,但它的值只能是一个 child 。

让我们利用 slice 。现在我们知道如何打印一个特定的值,对于您的案例,我们需要做的就是遍历一个 slice 并按照我们上面所做的相同方式打印。

我们可以这样做:

type child struct {
name string
age int
}

type parent struct {
name string
age int
children []child
}

func main() {
family := parent{
name: "John",
age: 40,
children: []child{
child{
name: "Johnny",
age: 10,
},
child{
name: "Jenna",
age: 7,
},
},
}

for _, child := range family.children {
fmt.Println(child.name);
}
}

上面的例子会提示“Johnny”和“Jenna”。

您可以使用与我上面在您自己的代码中显示的类似的模式来遍历您的结构并打印您心中想要的任何值:)


请记住,循环遍历事物的方法有很多种。例如,以下所有循环都将打印上述示例中的“Johnny”和“Jenna”。

for _, child:= range family.children{ // Prints "Jonny" and "Jenna"
fmt.Println(child.name);
}

for i, _ := range family.children{ // Prints "Jonny" and "Jenna"
fmt.Println(family.children[i].name);
}

for i := 0; i < len(family.children); i++ { // Prints "Jonny" and "Jenna"
fmt.Println(family.children[i].name);
}

关于go - 在 struct golang 中打印一个 struct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35496409/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com