go语言-interface

笔记 / 2021-03-15

interface

  • 所有类型都实现了 interface{} 接口
  • 使用interface可以实现类型断言
package main

import "fmt"

// 万能数据类型
func Func(arg interface{})  {
	// 类型断言
	// xxx.(type)
	val,ok := arg.(string)
	if !ok {
		panic("arg is not string type")
	}
	fmt.Println("value:",val)
}

func main() {
	Func("hello")
	Func(100)

}

value: hello
panic: arg is not string type

goroutine 1 [running]:
main.Func(0xb22ac0, 0xb5ec80)
        E:/cgo/go-package/struct/interface2.go:10 +0xe5
main.main()
        E:/cgo/go-package/struct/interface2.go:17 +0x65
exit status 2