interface

  • 所有类型都实现了 interface{} 接口
  • 使用interface可以实现类型断言
  1. package main
  2. import "fmt"
  3. // 万能数据类型
  4. func Func(arg interface{}) {
  5. // 类型断言
  6. // xxx.(type)
  7. val,ok := arg.(string)
  8. if !ok {
  9. panic("arg is not string type")
  10. }
  11. fmt.Println("value:",val)
  12. }
  13. func main() {
  14. Func("hello")
  15. Func(100)
  16. }
  1. value: hello
  2. panic: arg is not string type
  3. goroutine 1 [running]:
  4. main.Func(0xb22ac0, 0xb5ec80)
  5. E:/cgo/go-package/struct/interface2.go:10 +0xe5
  6. main.main()
  7. E:/cgo/go-package/struct/interface2.go:17 +0x65
  8. exit status 2