Bagaimana untuk menentukan panjang kepingan sebagai tatasusunan dalam golang?

WBOY
Lepaskan: 2024-02-08 21:45:24
ke hadapan
346 orang telah melayarinya

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
Salin selepas log masuk

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!