On Mon, Dec 10, 2018 at 1:43 PM Tyler Compton <xavi...@gmail.com> wrote: > > If my interpretation of the question is correct, I think it boils down to > whether or not it's possible to get the reflect.Type of a type in order to > pass it to a function without first creating an instance of that type. I > don't think it's possible but I would be interested to hear from someone who > knows more.
It depends on what you mean by "creating an instance". For example, it suffices to create an instance of a pointer to the type, not an instance of the type itself. But, yes, reflect.TypeOf requires a value of some type. There is no way to get a reflect.Type without starting with some value of some type. Ian > On Mon, Dec 10, 2018 at 1:28 PM Dan Kortschak <d...@kortschak.io> wrote: >> >> No, it is possible, but you need to pass the pointer to the interface. >> You can then use reflect to interrogate the interface value. >> >> The bigger question, and one that would help here would be what is it >> that you are actually trying to achieve. >> >> On Mon, 2018-12-10 at 08:53 -0600, Mark Volkmann wrote: >> > Yes, this is what I'm trying to do! >> > Perhaps this is not possible. >> > >> > On Sun, Dec 9, 2018 at 10:34 PM Robert Engels <reng...@ix.netcom.com> >> > wrote: >> > >> > > >> > > I think what the OP wants is: >> > > >> > > type A interface{} >> > > type B interface{} >> > > >> > > ... >> > > PrintInterface(A) >> > > >> > > Meaning they want to pass the interface definition to some method. >> > > >> > > At least that’s what I am guessing. >> > > >> > > On Dec 9, 2018, at 9:22 PM, Space A. <reexist...@gmail.com> wrote: >> > > >> > > 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> 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. >> > > > 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. >> > > >> > > -- >> > > 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. >> > > >> > >> > -- >> > 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+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. > > > > -- > Tyler Compton > Student of Software Engineering > Arizona State University > > -- > 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. -- 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.