3 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
斷言*on類型為*P。例如,
package main
import (
"fmt"
"reflect"
)
type Namer interface {
PrintName()
}
type P struct {
Name string
}
func (p *P) PrintName() {
fmt.Printf("%s\n", p.Name)
}
func main() {
p := P{Name: "Name"}
var namers []Namer
namers = append(namers, &p)
fmt.Println(reflect.TypeOf(namers[0]))
on := &namers[0]
fmt.Println(reflect.TypeOf(on))
(*on).PrintName()
(*on).(*P).Name = "EEEE"
(*on).PrintName()
}
輸出:
*主.P
*main.Namer
姓名
電子電氣設(shè)備

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
我想 - 請(qǐng)記住,我并不真正精通 GO - 您所有問(wèn)題的主要原因與您PrintName
以接收者(實(shí)現(xiàn)者)對(duì)象是指針的方式實(shí)現(xiàn)的事實(shí)有關(guān)。
- 3 回答
- 0 關(guān)注
- 201 瀏覽
添加回答
舉報(bào)