Interfaces and Errors
Type Assertions
Type assertions recover a concrete value from an interface value.
Type Assertions
type_assertion.go
package main
import "fmt"
func main() {
var useNumber =
var value interface{}
if useNumber {
value = 42
} else {
value = "forty-two"
}
number, ok := value.(int)
if ok {
fmt.Println("kind= number")
fmt.Println("value=", number)
} else {
fmt.Println("kind= text")
fmt.Println("value=", value)
}
}
package main
import "fmt"
func main() {
var useNumber =
var value interface{}
if useNumber {
value = 42
} else {
value = "forty-two"
}
number, ok := value.(int)
if ok {
fmt.Println("kind= number")
fmt.Println("value=", number)
} else {
fmt.Println("kind= text")
fmt.Println("value=", value)
}
}
type assertion
The `value, ok := item.(Type)` form checks whether an interface value holds a specific concrete type.