Go
发布时间:2022-04-09 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Golang中interface{}作为函数参数和函数返回值的使用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
转载:http://blog.csdn.net/chdhust/article/details/51436882
- packagemain
-
- import(
- "errors"
- "fmt"
- )
-
- typeitemstruct{
- NameString
- }
- func(iitem)String()String{
- returnfmt.Sprintf("ite@R_772_8156@:%v",i.Name)
- typepersonstruct{
- SexString
- }
- func(pperson)String()String{
- returnfmt.Sprintf("personname:%vsex:%v",p.Name,p.SeX)
- funcParse(iinterface{})interface{}{
- switchi.(typE){
- caseString:
- return&item{
- Name:i.(String),
- case[]String:
- data:=i.([]String)
- length:=len(data)
- iflength==2{
- return&person{
- Name:data[0],
- Sex:data[1],
- }else{
- returnnil
- default:
- panic(errors.New("typematchmiss"))
- returnnil
- funcmain(){
- p1:=Parse("Apple").(*item)
- fmt.Println(p1)
- p2:=Parse([]String{"zhangsan","man"}).(*person)
- fmt.Println(p2)
- }
输出结果: