通过字符串名称将类型转换为特定的结构类型

I would like to typecast a specific variable to a specific defined struct/interface by using the string name value of the struct/interface.

For example:

type Testing interface{}

and new variable

stringName := "Testing"
newTestingVariable.(stringName)

Is this possible by chance? Perhaps using reflection?

Cheers

It is not possible. Go is a statically typed language, which means types of variables and expressions must be known at compile-time.

In a type assertion:

x.(T)

[...] If the type assertion holds, the value of the expression is the value stored in x and its type is T.

So you use type assertion to get (or test for) a value of a type you specify.

When you would do:

stringName := "Testing"
newTestingVariable.(stringName)

What would be the type of the result of the type assertion? You didn't tell. You specified a string value containing the type name, but this can only be decided at runtime. (Yes, in the above example the compiler could track the value as it is given as a constant value, but in the general case this is not possible at compile time.)

So at compile time the compiler could only use interface{} as the type of the result of the type expression, but then what's the point?

If the point would be to dynamically test if x's type is T (or that if the interface value x implements T), you can use reflection for that (package reflect). In this case you would use a reflect.Type to specify the type to be tested, instead of a string representation of its name.