Wenn ich eine Karte m haben, ist es eine bessere Art und Weise eine Scheibe der Werte des Erhaltens v dannIn Golang gibt es eine nette Möglichkeit, ein Stück Werte von einer Karte zu bekommen?
package main
import (
"fmt"
)
func main() {
m := make(map[int]string)
m[1] = "a"
m[2] = "b"
m[3] = "c"
m[4] = "d"
// Can this be done better?
v := make([]string, len(m), len(m))
idx := 0
for _, value := range m {
v[idx] = value
idx++
}
fmt.Println(v)
}
Gibt es eine eingebaute Funktion einer Karte? Gibt es eine Funktion in einem Go-Paket oder ist dies der beste Code, den ich tun muss, wenn ich muss?
statt ‚_‘ in Ihrer for-Schleife, nennen es idx und Graben der idx ++ Geschäft –
Nein, kann er nicht, wenn Sie eine Karte, um diese Schlüssel zurückgibt -umspannen, Wert nicht Index, Wert. In seinem Beispiel verwendet er 1 als ersten Schlüssel und das wird die Indizes in der Scheibe v inkorrekt machen, weil der Startindex 1 nicht Null ist, und wenn er auf 4 kommt, wird er außerhalb des Bereichs liegen. https://play.golang.org/p/X8_SbgxK4VX – Popmedic