点后直接括号
- type assertion 类型断言
- type switch 类型判断
Golang 是强类型的语言,这两种语法都是只对 interface{}
有效。
package main
import "fmt"
func test(value interface{}) {
switch value.(type) {
case string:
fmt.Printf("%#v\n", value)
}
}
func test2(value interface{}) {
v1, ok := value.([]byte)
fmt.Printf("%#v, %#v\n", v1, ok)
v2, ok := value.(string)
fmt.Printf("%#v, %#v\n", v2, ok)
}
func main() {
a := "abc"
test(a)
test2(a)
}