英文:
go 1d array combine 2d array with append
问题
我有两个一维数组,我想用append将这两个单独的数组合并成一个多维数组。
在Go语言中,如何以最快的方式完成这个操作?
var time []int64
var value []float64
var twoDArray [][]interface{}
// 使用append来合并数组
for i := 0; i < len(time); i++ {
twoDArray = append(twoDArray, []interface{}{time[i], value[i]})
}
在Go语言中,使用append
是将数组合并的最佳方式。
英文:
I have two one dimensional array and I want to combine the two single arrays into one multi dimensional array with append.
How would this be done for the fastest in go?
val time []int64
val value []float64
val 2darray [][]int64, float64
Would append be the best way to do this in go?
答案1
得分: 0
以下是翻译好的内容:
这是一个示例,展示了如何完成这个任务:
package main
import (
"fmt"
)
type TimeAndValue struct {
time int64
value float64
}
func main() {
times := []int64{0, 1, 2, 3, 4}
values := []float64{1.23, 2.34, 3.45, 4.56, 5.67}
timesAndValues := zip(times, values)
fmt.Println(timesAndValues)
}
func zip(ts []int64, vs []float64) []TimeAndValue {
if len(ts) != len(vs) {
panic("not same length")
}
var res []TimeAndValue
for i, t := range ts {
res = append(res, TimeAndValue{time: t, value: vs[i]})
}
return res
}
链接:https://play.golang.org/p/1OWJ1HG1XL
英文:
Here's an example of how it can be done:
package main
import (
"fmt"
)
type TimeAndValue struct {
time int64
value float64
}
func main() {
times := []int64{0, 1, 2, 3, 4}
values := []float64{1.23, 2.34, 3.45, 4.56, 5.67}
timesAndValues := zip(times, values)
fmt.Println(timesAndValues)
}
func zip(ts []int64, vs []float64) []TimeAndValue {
if len(ts) != len(vs) {
panic("not same length")
}
var res []TimeAndValue
for i, t := range ts {
res = append(res, TimeAndValue{time: t, value: vs[i]})
}
return res
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论