如何解决在 Golang 的 Range Loop 中创建对象数组
我是 Golang 的新手,正在尝试各种东西。我有两个要求,
- 打印数组中值的出现次数 - 完成。
- 创建键的键值和数组中的值 - 仍在努力。
var StringsArray :=["Person1","Person2","Person3","Person4","Person1","Person2"]
我正在循环这个,
for _,name := range StringsArray {
Count := make(map[string]int)
Words []string
type MyStruct struct {
Name string `json:"name" bson:"name" `
Count int `json:"count" bson:"count" `
}
_,exist := Count[name]
if exist {
Count[name] += 1
} else {
Count[name] = 1
}
if name != "" {
fmt.Println("m",name,Count)
WordsArray := []MyStruct {
{
name: name,count: Count[name],}
}
Words = append(Words,WordsArray)
}
}
我期望输出为对象数组,例如
[{name:"Person1",value:2},{name:"Person2",{name:"Person3",value:1},{name:"Person4",value:1}]
[
{Person2 2}
]
其他值被覆盖。
对此的任何帮助表示高度赞赏。
提前致谢。
解决方法
类似的东西,而不是编组到 json
package main
import "fmt"
var StringsArray = []string{"Person1","Person2","Person3","Person4","Person1","Person2"}
type MyStruct struct {
Name string
Count int
}
func main() {
mySlice := []MyStruct{}
for i,name := range StringsArray {
fmt.Println(name,i)
mySlice = append(
mySlice,MyStruct{
Name: name,Count: i,})
}
fmt.Println(mySlice)
}
你可以在这里试试 - go playground
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。