草庐IT

human-interface-guidelines

全部标签

go - 如何访问接口(interface)中未定义的类型方法?

我的接口(interface)要求其实现者具有Click方法。但是,实现该接口(interface)的类型FakeTicker除了实现了Click方法外,还实现了Tick方法。packagemaintypeTickerinterface{Click()string}typeFakeTickerstruct{valstring}func(fFakeTicker)Click()string{returnf.val}func(fFakeTicker)Tick()int{return1}funcmain(){varclockerTickerclocker=FakeTicker{"Val"}cl

go - 如何访问接口(interface)中未定义的类型方法?

我的接口(interface)要求其实现者具有Click方法。但是,实现该接口(interface)的类型FakeTicker除了实现了Click方法外,还实现了Tick方法。packagemaintypeTickerinterface{Click()string}typeFakeTickerstruct{valstring}func(fFakeTicker)Click()string{returnf.val}func(fFakeTicker)Tick()int{return1}funcmain(){varclockerTickerclocker=FakeTicker{"Val"}cl

go - 在 golang 中,为什么接口(interface)变量可以获取结构变量的地址但不能从基本类型变量获取地址?

我正在使用“go1.10darwin/amd64”从“gotour”工具学习golang。对于以下情况:packagemainimport"fmt"typeMyapiinterface{fun1()int}typeMyintAstruct{valint}typeMyintBintfunc(v*MyintA)fun1()int{returnint(v.val)+1}func(v*MyintB)fun1()int{returnint(*v)+1}funcmain(){varaMyapia=&MyintA{3}fmt.Println(a)a=&MyintB(2)//Needb:=MyintB

go - 在 golang 中,为什么接口(interface)变量可以获取结构变量的地址但不能从基本类型变量获取地址?

我正在使用“go1.10darwin/amd64”从“gotour”工具学习golang。对于以下情况:packagemainimport"fmt"typeMyapiinterface{fun1()int}typeMyintAstruct{valint}typeMyintBintfunc(v*MyintA)fun1()int{returnint(v.val)+1}func(v*MyintB)fun1()int{returnint(*v)+1}funcmain(){varaMyapia=&MyintA{3}fmt.Println(a)a=&MyintB(2)//Needb:=MyintB

json - 为什么在接口(interface)中添加 func 会导致 json.Unmarshal 失败?

为什么会失败并出现错误:json:cannotunmarshalobjectintoGostructfieldPerson.spouseoftypemain.SpousetypeSpouseinterface{Name()//Addingthiscausesanerror}typeAddressinterface{}typePersonstruct{Namestring`json:"name"`A*Address`json:"address"`S*Spouse`json:"spouse"`}funcmain(){b:=[]byte(`{"name":"sarah","address":

json - 为什么在接口(interface)中添加 func 会导致 json.Unmarshal 失败?

为什么会失败并出现错误:json:cannotunmarshalobjectintoGostructfieldPerson.spouseoftypemain.SpousetypeSpouseinterface{Name()//Addingthiscausesanerror}typeAddressinterface{}typePersonstruct{Namestring`json:"name"`A*Address`json:"address"`S*Spouse`json:"spouse"`}funcmain(){b:=[]byte(`{"name":"sarah","address":

go - 反射(reflect)接口(interface)列表

我已经阅读了几个关于Go中反射的示例/问题,但我仍然无法理解我应该如何处理我的接口(interface)列表。以下是真实用例的精简版。我有几种符合给定接口(interface)的类型:typeFoointerface{Value()int}typebarstruct{valueint}func(bbar)Value()int{returnb.value}typebazstruct{}func(bbaz)Value()int{return42}我有一个这样的人的名单typeFoos[]Foovarfoos=Foos{bar{},baz{},}我想通过更改具有value字段的成员的值来遍历

go - 反射(reflect)接口(interface)列表

我已经阅读了几个关于Go中反射的示例/问题,但我仍然无法理解我应该如何处理我的接口(interface)列表。以下是真实用例的精简版。我有几种符合给定接口(interface)的类型:typeFoointerface{Value()int}typebarstruct{valueint}func(bbar)Value()int{returnb.value}typebazstruct{}func(bbaz)Value()int{return42}我有一个这样的人的名单typeFoos[]Foovarfoos=Foos{bar{},baz{},}我想通过更改具有value字段的成员的值来遍历

linux - 如果绑定(bind)到特定接口(interface)然后 IP 更改,会发生什么情况?

使用以下代码片段我绑定(bind)到特定接口(interface)iface,err:=net.InterfaceByName(ifaceName)iferr!=nil{returnnil,fmt.Errorf("ERR:Errorusinginterface%q:%q",ifaceName,err.Error())}addrs,err:=iface.Addrs()iferr!=nil{returnnil,fmt.Errorf("ERR:Errorusinginterface%q:%q",ifaceName,err.Error())}iflen(addrs)然后用这个作为Listen的

linux - 如果绑定(bind)到特定接口(interface)然后 IP 更改,会发生什么情况?

使用以下代码片段我绑定(bind)到特定接口(interface)iface,err:=net.InterfaceByName(ifaceName)iferr!=nil{returnnil,fmt.Errorf("ERR:Errorusinginterface%q:%q",ifaceName,err.Error())}addrs,err:=iface.Addrs()iferr!=nil{returnnil,fmt.Errorf("ERR:Errorusinginterface%q:%q",ifaceName,err.Error())}iflen(addrs)然后用这个作为Listen的