reflect/* is a bit tricky. Use pointer to get interface itself. package main
import ( "fmt" "reflect" ) func main() { test := interface{}("test") printInterfaceValue(test) } func printInterfaceValue(i interface{}) { switch testing := i.(type) { case interface{}: fmt.Println("is interface, with value:", testing) case string: fmt.Println("is not interface") } fmt.Println("reflect.Type is", reflect.TypeOf(&i).Elem()) } Output: is interface, with value: test reflect.Type is interface {} понедельник, 10 декабря 2018 г., 5:05:12 UTC+3 пользователь Robert Engels написал: > > I mean reflect.Type not a type that is an interface. > > On Dec 9, 2018, at 6:53 PM, Space A. <reexi...@gmail.com <javascript:>> > wrote: > > Of course. When you "pass a value whose type implements the interface" as > an interface argument to a function, you in fact pass an *interface*. > > > воскресенье, 9 декабря 2018 г., 23:23:41 UTC+3 пользователь Mark Volkmann > написал: >> >> Is it possible to pass an interface to a function in Go? I don’t want to >> pass a value whose type implements the interface, I want to pass the >> interface. >> >> -- >> R. Mark Volkmann >> Object Computing, Inc. >> > -- > 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 <javascript:>. > For more options, visit https://groups.google.com/d/optout. > > -- 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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.