英文:
How to make array of struct and return from a function in golang?
问题
最简单的方法是使用切片来创建 Process 数组。在你的方法中,你可以声明一个空的 Process 切片,然后在循环中将每个 Process 结构体添加到切片中。最后,返回该切片即可。以下是修改后的代码:
func procData(values []string) ([]Process, error) {
var processes []Process // 声明一个空的 Process 切片
for _, value := range values {
pieces := strings.Split(value, "-")
var process Process
if len(pieces) > 1 {
process = Process{Key: pieces[0], Value: pieces[1]}
} else if len(pieces) > 2 {
process = Process{Key: pieces[0], Value: pieces[2]}
}
processes = append(processes, process) // 将每个 Process 结构体添加到切片中
}
return processes, nil // 返回 Process 切片
}
这样,你就可以通过将每个 Process 结构体添加到切片中来创建 Process 数组,并在方法的最后返回该数组。
英文:
I recently started working with golang and I need to make array of struct. Below is my struct:
type Process struct {
Key string
Value string
}
Now from my method I need to return []Process
. Below is my method:
func procData(values []string) ([]Process, error) {
var process Process
for _, value := range values {
pieces := strings.Split(value, "-")
if len(pieces) > 1 {
process = Process{pieces[0], pieces[1]}
} else if len(pieces) > 2 {
process = Process{pieces[0], pieces[2]}
}
// add process struct process array? how to add process struct to make Process array
}
}
I am confuse on how to make Process array by adding individual process struct into them and then return it.
答案1
得分: 2
func procData(values []string) ([]Process, error) {
var result []Process
for _, value := range values {
var process Process
pieces := strings.Split(value, "-")
if len(pieces) > 1 {
process = Process{pieces[0], pieces[1]}
} else if len(pieces) > 2 {
process = Process{pieces[0], pieces[2]}
}
result = append(result, process)
}
return result
}
英文:
Use append to collect the results in a slice.
func procData(values []string) ([]Process, error) {
var result []Process
for _, value := range values {
var process Process
pieces := strings.Split(value, "-")
if len(pieces) > 1 {
process = Process{pieces[0], pieces[1]}
} else if len(pieces) > 2 {
process = Process{pieces[0], pieces[2]}
}
result = append(result, process)
}
return result
}
答案2
得分: 0
func procData(values []string) ([]Process, error) {
processList := make([]Process, len(values))
var process Process
for _, value := range values {
pieces := strings.Split(value, "-")
if len(pieces) > 1 {
process = Process{pieces[0], pieces[1]}
} else if len(pieces) > 2 {
process = Process{pieces[0], pieces[2]}
}
// 如何将 process 结构体添加到 processList 中?如何创建 Process 数组?
processList = append(processList, process)
}
return processList
}
以上是一个函数的代码片段,它接受一个字符串数组 values,并返回一个 Process 数组和一个错误。在函数中,它通过将每个字符串按照 "-" 进行分割,创建一个 Process 结构体,并将其添加到 processList 数组中。请问你需要什么帮助?
英文:
func procData(values []string) ([]Process, error) {
processList := make([]Process, len(values))
var process Process
for _, value := range values {
pieces := strings.Split(value, "-")
if len(pieces) > 1 {
process = Process{pieces[0], pieces[1]}
} else if len(pieces) > 2 {
process = Process{pieces[0], pieces[2]}
}
// add process struct process array? how to add process struct to make Process array
processList = append(processList, process)
}
return processList
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论