Golang:将接口动态转换为类型变量

In go, is it possible to cast variables dynamically somehow?

For example, if a simple cast would be:

var intAge  = interfaceAge.(int)

What if I do not know that age is an int in advance? A simple way of writing it would be

var x = getType()
var someTypeAge = interfaceAge(.x)

Is there a way of achieving something like this? The reflect package gives some ways of determining or casting a type at runtime - but I couldn't find anything like the above mentioned (a generic scheme that would work for all types).

No you can't. Go is a static typed language. The type of a variable is determined at compile time.

If you want to determine dynamically the typeof an interface{} you could use type switching:

var t interface{}
t = functionOfSomeType()
switch t := t.(type) {
default:
    fmt.Printf("unexpected type %T", t)       // %T prints whatever type t has
case bool:
    fmt.Printf("boolean %t
", t)             // t has type bool
case int:
    fmt.Printf("integer %d
", t)             // t has type int
case *bool:
    fmt.Printf("pointer to boolean %t
", *t) // t has type *bool
case *int:
    fmt.Printf("pointer to integer %d
", *t) // t has type *int
}