-1
package main
import "fmt"
import "reflect"
type someMap struct {
X map[string]string
}
func (s *someMap) mapSetter(someKey string, someValue string) {
s.X = make(map[string]string)
s.X[someKey] = someValue
}
func (s someMap) mapGetter() map[string]string {
return s.X
}
func (s someMap) mapKeys() []reflect.Value {
return reflect.ValueOf(s.X).MapKeys()
}
func retrievedList(x map[string]string) {
fmt.Println("I got %v", x)
}
func main() {
v := new(someMap)
v.mapSetter("item1", "value1")
v.mapSetter("item2", "value2")
returnedMap := v.mapGetter()
fmt.Println(returnedMap)
fmt.Println(reflect.TypeOf(returnedMap))
retrievedList(returnedMap)
fmt.Println(v.mapKeys())
keys := v.mapKeys()
fmt.Println(keys[0])
}
構造体マップに「someMap」という2つのキー/値を設定していますが、キーを保存するのではなく上書きするように見えるのはなぜですか?構造体マップでキー/値が保存されない
map[item2:value2]
map[string]string
I got %v map[item2:value2]
[item2]
item2
私はたくさんされていない、として、私の知るここhttps://blog.golang.org/go-maps-in-action
をマップ例を以下してきた、私はgolangする新たなんだ、これは、Pythonと少し似て動作するはずです。
最初の行を参照してください。 'mapSetter'の前のマップを閉じます。 –