Type assertions in Go
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