Go - Type Assertion
- X.(T) X is interface, T is concrete type.
- When T is a concrete type, it assert dynamic type of X is identical to T. Result is the dynamic value with type of T

- Left hand of type assertion must be an interface, otherwise panic

- Panic if assert type fail

- If T is an interface, it check is X satisfy T interface. Result is the type T

- If two result are expected, type assertion will return boolean but not panic.w, ok := x.(T)
- If result is false, result type will be nil
