1 回答
TA贡献1877条经验 获得超6个赞
当你传递一个receiver指针时,你必须使用指向结构的指针来调用它,请看下面的代码
package main
import (
"fmt"
)
type myStruct struct {
FirstName string
LastName string
}
func (m *myStruct) GetFirstName() string {
return m.FirstName
}
func (m *myStruct) GetLastName() string {
return m.LastName
}
func main() {
testMyStruct := &myStruct {
FirstName: "x1",
LastName: "x2",
}
myMapStruct:=make(map[string]*myStruct)
myMapStruct["test2"] = testMyStruct
fmt.Println(myMapStruct["test2"].GetFirstName())
}
看到在这里工作
receiver或者如果作为值传递,您可以像下面这样使用
package main
import (
"fmt"
)
type myStruct struct {
FirstName string
LastName string
}
func (m myStruct) GetFirstName() string {
return m.FirstName
}
func (m myStruct) GetLastName() string {
return m.LastName
}
func main() {
testMyStruct := myStruct {
FirstName: "x1",
LastName: "x2",
}
myMapStruct:=make(map[string]myStruct)
myMapStruct["test2"] = testMyStruct
fmt.Println(myMapStruct["test2"].GetFirstName())
}
- 1 回答
- 0 关注
- 87 浏览
添加回答
举报