Ich versuche, ein 2D-Schnitt in Go zu erstellen und zu initialisieren. Während die folgende Funktion funktioniert ohne Probleme:Fehler beim Erstellen eines 2D-Schnitts
func working2D() [][]uint8 {
p := make([][]uint8, 2)
for i:=range p{
p[i]=make([]uint8, 8)
for j:=range p[i]{
p[i][j]=uint8(j)
}
}
fmt.Println(p)
return p
}
Output: [[0 1 2 3 4 5 6 7] [0 1 2 3 4 5 6 7]]
Aber die folgende Funktion kompilieren nicht einmal und wirft einen Kompilierungsfehler:
sample/main/range.go:35:9: v2 declared and not used
func notWorking2D() [][]uint8 {
p := make([][]uint8, 1)
for _,v := range p {
v = make([]uint8, 8)
for j, v2 := range v {
v2 = uint8(j)
}
}
fmt.Println(p)
return p
}
Output: [[],[]]
Was ist es, Ich vermisse die zweite Funktion?
Die zweite Variable in einem 'Bereich' wird auf jeden Wert im Slice gesetzt, wenn die Schleife iteriert. Die Zuordnung zu dieser Variablen wirkt sich nicht auf das Segment aus. –
danke für die Klarstellung @AndySchweig. – shoki