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!
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 }
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!