1 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
當(dāng)你傳遞一個(gè)receiver指針時(shí),你必須使用指向結(jié)構(gòu)的指針來調(diào)用它,請看下面的代碼
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 關(guān)注
- 122 瀏覽
添加回答
舉報(bào)