Ich habe gelesen "Effektive Go" und andere Q & Wie so: golang interface compliance compile type check, aber dennoch kann ich nicht richtig verstehen, wie man diese Technik verwendet.Erläuterung der Überprüfung, ob value Schnittstellen implementiert. Golang
Bitte, siehe Beispiel:
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
}
Gibt es eine einfache Art und Weise (zB ohne Reflexion verwendet wird) Prüfwert, wenn es eine Schnittstelle implementiert?
wie etwa _, ok: = interface {} (val) (Somether).? – c0ming