第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

golang中的動態(tài)數(shù)組維度

golang中的動態(tài)數(shù)組維度

Go
POPMUISE 2023-01-03 15:51:28
我正在嘗試在 Golang 中創(chuàng)建一個高維數(shù)組。有誰知道該怎么做?例如dims := [3,2,1]作為參數(shù) -> 想要high_dims_array := make([3][2][1]int, 0)dims := [2]-> 想要high_dims_array := make([2]int, 0)dims := [3,3]-> 想要high_dims_array := make([3][3]int, 0)其中dims是包含維度的變量。
查看完整描述

2 回答

?
牧羊人nacy

TA貢獻1862條經(jīng)驗 獲得超7個贊

謝謝我的朋友們。我想出了辦法做到這一點


func initialCube(shape []int) []interface{} {

    // base condition

    if len(shape) <= 1 {

        dim := shape[len(shape)-1]

        retObj := make([]interface{}, dim)

        for i := 0; i < dim; i++ {

            retObj[i] = 0.0

        }

        return retObj

    } else { // recursive

        dim := shape[len(shape)-1]

        retObj := make([]interface{}, dim)

        for i := 0; i < dim; i++ {

            retObj[i] = initialCube(shape[:len(shape)-1])

        }

        return retObj

    }

}


查看完整回答
反對 回復(fù) 2023-01-03
?
qq_花開花謝_0

TA貢獻1835條經(jīng)驗 獲得超7個贊

這看起來像什么dolmen-go/multidim(它有助于分配具有所需元素數(shù)量的切片):

package main


import (

    "fmt"


    "github.com/dolmen-go/multidim"

)


func main() {

    var cube [][][]int

    multidim.Init(&cube, 8, 2, 2, 2)


    fmt.Println(cube)

}

輸出:


[[[8 8] [8 8]] [[8 8] [8 8]]]

您還可以使用一個函數(shù)(仍然使用相同的庫)來初始化您的 3*2 切片:


package main


import (

    "fmt"


    "github.com/dolmen-go/multidim"

)


func main() {

    var a [][]int


    multidim.Init(&a, func(i, j int) int {

        return 2*i + j + 1

    }, 3, 2)


    fmt.Println(a)


    var r [][]string


    multidim.Init(&r, func(i, j int) string {

        return "foobar"[i*3+j : i*3+j+1]

    }, 2, 3)


    fmt.Println(r)

}

輸出:


[[1 2] [3 4] [5 6]]

[[f o o] [b a r]]


查看完整回答
反對 回復(fù) 2023-01-03
  • 2 回答
  • 0 關(guān)注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號