Dans Golang, les tranches et les tableaux sont deux types de données différents. Une tranche est une séquence de longueur dynamique, tandis qu'un tableau est une séquence de longueur fixe. Si vous souhaitez définir la longueur d'une tranche sous forme de tableau, vous pouvez le faire en créant un tableau de longueur fixe, puis en utilisant la tranche pour référencer ce tableau. L'opération spécifique consiste à créer d'abord un tableau de longueur spécifiée, puis à utiliser une tranche pour référencer une partie des éléments du tableau, afin que la longueur de la tranche puisse être définie comme la longueur du tableau. Cette approche peut simuler le comportement d’un tableau dans une certaine mesure, tout en tirant parti de la flexibilité du découpage. J'espère que cette courte réponse vous aidera !
J'ai un tableau de tranches et je souhaite définir la longueur des tranches car lorsque j'essaie de démarrer le code, je panique :
panic: runtime error: index out of range [0] with length 0
Code :
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 }
Le problème est que vous n'avez pas initialisé chaque tranche interne. arr := make([][]int, len(m))
仅初始化 arr
La boucle extérieure du découpage.
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 }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!