A type assertion extracts the concrete type from an interface value, and a type switch branches on an interface's underlying type. They're how you recover specific type information from an interface (especially the empty interface / any).
Type assertion — extract a concrete type
i {} =
s := i.()
fmt.Println(s)
n := i.()
