我在Golang.org上使用Go Playground編寫了simple program。前往:編輯地圖值
輸出顯然是:
second test
first test
是否存在編輯到位映射值的方法嗎?我知道我不能接受a.Things[key]
的女主人。那麼,設置a.Things[key] = firstTest
是唯一的方法嗎?也許用函數ChangeThing(key string, value string)
?
我在Golang.org上使用Go Playground編寫了simple program。前往:編輯地圖值
輸出顯然是:
second test
first test
是否存在編輯到位映射值的方法嗎?我知道我不能接受a.Things[key]
的女主人。那麼,設置a.Things[key] = firstTest
是唯一的方法嗎?也許用函數ChangeThing(key string, value string)
?
您可以通過將地圖指針的值設置爲另一個結構來實現。
http://play.golang.org/p/UouwDGuVpi
package main
import "fmt"
type A struct {
Things map[string]*str
}
type str struct {
s string
}
func (a A) ThingWithKey(key string) *str {
return a.Things[key]
}
func main() {
variable := A{}
variable.Things = make(map[string]*str)
variable.Things["first"] = &str{s:"first test"}
firstTest := variable.ThingWithKey("first")
firstTest.s = "second test"
fmt.Println(firstTest.s)
fmt.Println(variable.ThingWithKey("first").s)
}
您可以使用指針作爲映射值http://play.golang.org/p/BCsmhevGMX
謝謝!沒想過這個。你的建議對我很好。 – Donovan