Assigning types to variables in Go

Viewed 5127

How to have a variable whose type is a variable type?

What do I mean by that? I have a python and java background. In both languages I can do things like assigning a class name to variable.

#Python
class A:
    def __init__(self):
        self.a = "Some Value"

# And asigning the class name to a variable
class_A = A

# And create instance from class A by using class_A
a = class_A()

Is there such a mechanism in go that allows me to do that? I couldn't know where to look at for such things in their documentation. Honestly, generally I don't know what these are called in programming languages.

For example I would like to be able to do:

// For example, what would be the type of myType?
var myType type = int

I will use this mechanism to take "type" arguments. For example:

func Infer(value interface{}, type gotype) {...}
3 Answers

Use the empty interface:

var x, y interface{}
var a uint32
a = 255
x = int8(a)
y = uint8(a)

Playground example

Related