You can change an object from a specific type to a interface{}
, and then change it back to the original type, using Type assertions. For example:
func main() {
myObject := myType{"hello World!"}
doSomething(myObject)
}
type myType struct {
value string
}
func doSomething(object interface{}) {
// At this point we can't read, for example, the "value" attribute on the received object.
converted, ok := object.(myType)
if ok {
fmt.Print("success! ", converted.value)
}
}
myObject := myType{"hello World!"}
doSomething(myObject)
}
type myType struct {
value string
}
func doSomething(object interface{}) {
// At this point we can't read, for example, the "value" attribute on the received object.
converted, ok := object.(myType)
if ok {
fmt.Print("success! ", converted.value)
}
}