On Fri, Feb 9, 2024 at 1:37 PM Christopher C
<
crotty.ch...@gmail.com> wrote:
>
> I have a base struct that implements an interface. There are multiple other structs that embed this base struct. I would like to pass the an interface into a function that can cast it as the base struct and call some functions tied to the base struct.
No, because type assertion tests the type of the object contained in
an interface, and that object is not the base object.
However, you can put whatever functions you are planning to call in
that base object into another interface, and call that:
type Base struct {...}
func (Base) A() {}
func (Base) B() {}
type HasA interface {
A()
}
func f(in HasA) {
type hasB interface {
B()
}
b,ok:=in.(hasB)
if ok {
b.B()
> --
> You received this message because you are subscribed to the Google Groups "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
golang-nuts...@googlegroups.com.
> To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/1ded992c-3f90-4c30-99a5-532e573cf16fn%40googlegroups.com.