所以我的用例是这样的:
type Car struct {
Model string
Size int
}
func getSize(car Car) {
fmt.Println(car.Size)
}
func main() {
cars := make(map[string]*Car)
// fill cars with stuff
cars["Toyota"] = &Car{
Model: "Toyota",
Size: 2,
}
for _, car := range cars {
cars["Toyota"].Size = 4
}
for _, car := range cars {
//somehow get the value of car and insert into function
getSize(car)
}
}
但是我不知道如何将指针的值从地图传递给函数,因为地图不允许你对指针进行寻址。
有什么方法可以更好地解决这个问题吗?
答案 0 :(得分:0)
您可以在调用期间取消引用汽车地图值,这将使用汽车指针指向的值调用该函数:
getSize(*car)
如果您没有收到编译错误:
prog.go:31:16:在参数中不能使用汽车(类型*汽车)作为汽车类型 的getSize
package main
import (
"fmt"
)
type Car struct {
Model string
Size int
}
func getSize(car Car) {
fmt.Println(car.Size)
}
func main() {
cars := make(map[string]*Car)
// fill cars with stuff
cars["Toyota"] = &Car{
Model: "Toyota",
Size: 2,
}
cars["Toyota"].Size = 4
for _, car := range cars {
//somehow get the value of car and insert into function
getSize(car)
}
}