私はマップMを使用している場合の値のスライスを得るためのより良い方法があるが golangには、マップから値のスライスを得る良い方法がありますか?
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)
}
その後、
をVマップの構築された機能はありますか? Goパッケージには関数がありますか、これは私がする必要がある場合に行う最良のコードですか?
代わりにあなたのforループの中に「_」を、あなたはそれがキー、値ではないインデックス、値を返すマップ範囲に及ぶときはありません、彼は、できないIDXそれを呼び出すと、IDX ++ビジネス –
を捨てます。彼の例では、最初のキーとして1を使用し、スライスのインデックスを正しくないようにします。なぜなら、開始インデックスはゼロではなく1になり、4になると範囲外になるからです。 https://play.golang.org/p/X8_SbgxK4VX – Popmedic