Ho letto "Effective Go" e altro Q & In questo modo: golang interface compliance compile type check, ma tuttavia non riesco a capire correttamente come utilizzare questa tecnica.Spiegazione di controllo se interfaccia valore implementa. Golang
prega, vedere Esempio:
type Somether interface {
Method() bool
}
type MyType string
func (mt MyType) Method2() bool {
return true
}
func main() {
val := MyType("hello")
//here I want to get bool if my value implements Somether
_, ok := val.(Somether)
//but val must be interface, hm..what if I want explicit type?
//yes, here is another method:
var _ Iface = (*MyType)(nil)
//but it throws compile error
//it would be great if someone explain the notation above, looks weird
}
È stato rilevato qualche modi semplici (ad esempio, senza l'utilizzo di riflessione) il valore di controllo se si implementa un'interfaccia?
come su _, ok: = interfaccia {} (val) (Somether).? – c0ming