Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menentukan panjang kepingan sebagai tatasusunan dalam golang?

Bagaimana untuk menentukan panjang kepingan sebagai tatasusunan dalam golang?

WBOY
WBOYke hadapan
2024-02-08 21:45:24386semak imbas

Bagaimana untuk menentukan panjang kepingan sebagai tatasusunan dalam golang?

Di Golang, kepingan dan tatasusunan ialah dua jenis data yang berbeza. Keratan ialah jujukan panjang dinamik, manakala tatasusunan ialah jujukan panjang tetap. Jika anda ingin menentukan panjang kepingan sebagai tatasusunan, anda boleh berbuat demikian dengan mencipta tatasusunan panjang tetap dan kemudian menggunakan kepingan itu untuk merujuk tatasusunan itu. Operasi khusus adalah untuk mula-mula mencipta tatasusunan panjang yang ditentukan, dan kemudian menggunakan hirisan untuk merujuk sebahagian daripada elemen tatasusunan, supaya panjang hirisan boleh ditakrifkan sebagai panjang tatasusunan. Pendekatan ini boleh mensimulasikan tingkah laku tatasusunan pada tahap tertentu sambil mengambil kesempatan daripada fleksibiliti menghiris. Harap jawapan ringkas ini membantu anda!

Kandungan soalan

Saya mempunyai pelbagai kepingan dan saya ingin menentukan panjang kepingan kerana apabila saya cuba memulakan kod saya menjadi panik:

panic: runtime error: index out of range [0] with length 0

Kod:

func Transpose(m [][]int) [][]int{
    arr := make([][]int, len(m))

    for i:=0; i <len(arr); i++ {
        for j:=0; j<len(arr); j++ {
            arr[j][i] = m[i][j]
        }
    }
    
return arr
}

Penyelesaian

Masalahnya ialah anda belum memulakan setiap bahagian dalam. arr := make([][]int, len(m)) 仅初始化 arr Gelung luar penghirisan.

func Transpose(m [][]int) [][]int {
    arr := make([][]int, len(m))

    for i := 0; i < len(m); i++ {

        arr[i] = make([]int, len(m[i]))

        for j := 0; j < len(m[i]); j++ {
            arr[i][j] = m[j][i]
        }
    }

    return arr
}

Atas ialah kandungan terperinci Bagaimana untuk menentukan panjang kepingan sebagai tatasusunan dalam golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam