分配结构的切片

Assigning a slice of struct

提问人:gettingBetterprogrammer 提问时间:7/17/2022 更新时间:7/17/2022 访问量:127

问:

我正在尝试将切片数据表示为 json 格式,以便我可以使用此 vs-code-extension

但是我在 for 循环的最后一行出现错误。

错误:append(formatted.Rows, col_i) ([]RowStructure 类型的值)未使用compilerUnusedExpr

请帮助我找出我做错了什么,以及分配结构片的正确方法应该是什么。

谢谢

type ColumnStructure struct{
    Content string
    Tag string
}
type RowStructure struct{
    Column ColumnStructure
}

type format struct{
    Kind map[string]bool
    Text string
    Rows []RowStructure
}

func serialize(s []int){
    var formatted format
    for i := 0; i < len(s); i++ {
        var col_i = ColumnStructure{
            Content: string(s[i]),
            Tag: string(s[i]),
        }
        append(formatted.Rows,col_i)
    }
}

func main() {
    var s = []int{1, 12, 30, 4, 5}
    formatted_data := serialize(s)
    fmt.Println(formatted_data)
    }
go struct 初始化 slice 变量赋值

评论

2赞 Cerise Limón 7/17/2022
应用程序将放弃 的结果。这几乎总是一个错误。看起来你想要.此外,更改为按预期返回 。appendformatted.Rows = append(formatted.Rows,col_i)serializeformattedmain

答:

0赞 gettingBetterprogrammer 7/17/2022 #1

对代码进行某些更改后,以下代码现在可以正常工作。 但是我仍然无法从这个 vs-code-extension 中获取可视化效果。

type ColumnStructure struct {
    Content string
    Tag     string
}
type RowStructure struct {
    Column ColumnStructure
}

type format struct {
    Kind map[string]bool
    Text string
    Rows []RowStructure
}

func serialize(s []int) format {
    var formatted format
    for i := 0; i < len(s); i++ {
        var col_i = ColumnStructure{
            Content: string(s[i]),
            Tag:     string(s[i]),
        }
        var row = RowStructure{
            Column: col_i,
        }
        formatted.Rows = append(formatted.Rows, row)
    }
    return formatted
}

func main() {
    var s = []int{1, 12, 30, 4, 5}
    formatted_data := serialize(s)
    fmt.Println(formatted_data)
    for i := 0; i < len(s)-1; i++ {
        if s[i] < s[i+1] {
            s[i], s[i+1] = s[i+1], s[i]
        }
    }
    fmt.Println(s)
}

评论

0赞 gettingBetterprogrammer 7/17/2022
我正在尝试获得此可视化:raw.githubusercontent.com/hediet/vscode-debug-visualizer/master/...
2赞 Alexander Guyer 7/17/2022
听起来你应该专门为 vs code 扩展制作一个最小的可重现示例,并发布一个单独的问题:)