Quidest?

Type assertions in Go

· Lorenzo Drumond

A type assertion provides access to an interface value’s underlying concrete value.

1t := i.(T)

This statement asserts that the interface value i holds the concrete type T and assigns the underlying T value to the variable t.

If i does not hold a T, the statement will trigger a panic.

To test whether an interface value holds a specific type, a type assertion can return two values: the underlying value and a boolean value that reports whether the assertion succeeded.

1t, ok := i.(T)

If i holds a T, then t will be the underlying value and ok will be true.

If not, ok will be false and t will be the zero value of type T, and no panic occurs.

References

Next -> type-switches-in-go

#nil #pointer #heap #interface #empty #assertion #pass_by #golang #value #type #panic #stack #values #reference #methods #for_the_love_of_go #programming