В Golang предпочтительнее использовать срезы вместо массивов.
Создание такого количества строк в предыдущих версиях не требуется, просто создавайте срез каждый раз, когда вы просматриваете данные, чтобы добавить новую строку в родительский срез,Это поможет вам иметь только необходимое количество строк, и вам нужно беспокоиться о длине, так как вы добавляете фрагмент к индексу родительского фрагмента.
package main
import (
"fmt"
"math/rand"
)
func main() {
orders := make([][]float64, 0) // create my 2d slice with zeros
for i := 0; i <= 6; i++ {
value := rand.Float64()
temp := make([]float64, 0)
temp = append(temp, value)
orders = append(orders, [][]float64{temp}...)
}
fmt.Println(orders)
}
Пожалуйста, проверьте рабочий код на Детская площадка
Если вы заметили, что я создаю новый цикл temp
в цикле, который содержит значение float64
, а затемдобавление значения к временному срезу, который я передал родительскому срезу.
Поэтому каждый раз, когда я добавляю временный срез к родительскому срезу, создается новая строка.
Примечание:
Массивы имеют свое место, но они немного негибки, поэтому вы не видите их слишком часто в коде Go.Ломтики, тем не менее, есть везде.Они основаны на массивах, чтобы обеспечить большую мощность и удобство.
Отредактировано:
Для работы с первыми 3 столбцами, а затем манипулировать значениями для следующих 3 столбцов, которыебудет добавлен к временному срезу и добавлен к основному срезу.Используйте приведенную ниже кодовую логику:
package main
import (
"fmt"
"math/rand"
"strconv"
)
func main() {
orders := make([][]float64, 0) // create my 2d slice with zeros
for i := 0; i <= 6; i++ {
value := rand.Float64()
// logic to create first 3 columns
temp := make([]float64, 0)
temp = append(temp, value)
temp2 := make([]float64, 3)
// logic to create next 3 columns on basis of previous 3 columns
for j, value := range temp {
addcounter, _ := strconv.ParseFloat("1", 64)
temp2[j] = value + addcounter
}
temp = append(temp, temp2...)
orders = append(orders, [][]float64{temp}...)
}
fmt.Println(orders)
}
Рабочая Пример