Last but not least, for debugging a value x, this gets you type and value
quickly:
fmt.Printf("type is %T and value is %#v\n", x, x)
On Monday, December 10, 2018 at 8:14:47 PM UTC-6, Mark Volkmann wrote:
>
> Here is some code that shows a part of what I'm trying to do.
> https://goplay.space/#8
Ah! No, that is not possible, because interfaces (and other types) are not
first-class objects in Go like they are in some other languages (such as
Python). You can work around it, to some extent, by passing a zero-valued
instance of such an interface (e.g. PrintInterface(A{})) and using some
Nice is a very strong word.
This is the alternative approach that doesn't require a value:
https://play.golang.org/p/FoA-GHcr56s
(now to the whole list)
On Tue, 2018-12-11 at 10:39 +0800, Huiqiang Li wrote:
> Nice! i think this is the right answer.
>
> Dan Kortschak 于2018年12月11日周二 上午10:34写道:
Thanks so much Dan!
---
R. Mark Volkmann
Object Computing, Inc.
> On Dec 10, 2018, at 8:34 PM, Dan Kortschak wrote:
>
> https://play.golang.org/p/VWPb_AcgUrl
>
>> On Mon, 2018-12-10 at 20:14 -0600, Mark Volkmann wrote:
>> Here is some code that shows a part of what I'm trying to do.
>> https:/
https://play.golang.org/p/VWPb_AcgUrl
On Mon, 2018-12-10 at 20:14 -0600, Mark Volkmann wrote:
> Here is some code that shows a part of what I'm trying to do.
> https://goplay.space/#8piYtjsqveZ
>
> package main
>
> import (
> "fmt"
> "reflect"
> )
>
> type Shape interface {
> Area() float64
> R
Here is some code that shows a part of what I'm trying to do.
https://goplay.space/#8piYtjsqveZ
package main
import (
"fmt"
"reflect"
)
type Shape interface {
Area() float64
Rotate(angle float64)
Translate(x, y float64)
}
func ReportInterface(intfPtr interface{}) {
fmt.Println("type is", reflec
Well, you can switch on a type, so you would think the case expression might be
able to be used elsewhere. Since the types can be created at runtime via
reflect it would seem you should be able to get a reference to the compile time
type definition as well. Seems logical to me.
> On Dec 10, 2
Oh! Yeah, that's never going to work. How could it?
On Mon, 2018-12-10 at 13:43 -0800, Tyler Compton 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 f
On Mon, Dec 10, 2018 at 1:43 PM Tyler Compton 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 thin
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
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 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.
>
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. wrote:
>
> reflect/* is a bit tricky. Use pointer to get i
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{}:
I mean reflect.Type not a type that is an interface.
> On Dec 9, 2018, at 6:53 PM, Space A. 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:4
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
16 matches
Mail list logo