草庐IT

Nameable

全部标签

go - 为什么直接实现的接口(interface)上的这种类型断言会失败?

我正在与Go的类型断言机制作斗争。在下面的示例中,Qux.(Bar)的类型断言失败。为什么在Qux上直接实现DoBar()没有填充Bar接口(interface)?主要包import("fmt")typeNameableinterface{Name()string}typeFoointerface{NameableDoFoo()string}typeBarinterface{NameableDoBar()string}typebarstruct{namestring}func(bbar)Name()string{returnb.name}//Quxembedsbarandisexpec

ios - 了解具有泛型约束的泛型

protocolNameable:Equatable{varname:String{getset}}structPerson:Nameable{varname:String}structCar:Nameable{varname:String}现在我可以约束一个函数,使其能够打印符合Nameable协议(protocol)的元素,因为它们属于同一类型?funcprintNameable(_list:[T]){}但是我怎样才能创建这个列表呢?我收到语法错误。varnameableList:[T]=[]或者,如果我接下来尝试,我会得到Protocol'Nameable'canonlybeus