Golang中interface{}作为函数参数和函数返回值的使用

前端之家收集整理的这篇文章主要介绍了Golang中interface{}作为函数参数和函数返回值的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

转载:http://blog.csdn.net/chdhust/article/details/51436882


面给出一个例子:

[python] view plain copy
  1. packagemain
  2. import(
  3. "errors"
  4. "fmt"
  5. )
  6. typeitemstruct{
  7. Namestring
  8. }
  9. func(iitem)String()string{
  10. returnfmt.Sprintf("itemname:%v",i.Name)
  11. typepersonstruct{
  12. Sexstring
  13. }
  14. func(pperson)String()string{
  15. returnfmt.Sprintf("personname:%vsex:%v",p.Name,p.Sex)
  16. funcParse(iinterface{})interface{}{
  17. switchi.(type){
  18. casestring:
  19. return&item{
  20. Name:i.(string),
  21. case[]string:
  22. data:=i.([]string)
  23. length:=len(data)
  24. iflength==2{
  25. return&person{
  26. Name:data[0],
  27. Sex:data[1],
  28. }else{
  29. returnnil
  30. default:
  31. panic(errors.New("typematchmiss"))
  32. returnnil
  33. funcmain(){
  34. p1:=Parse("Apple").(*item)
  35. fmt.Println(p1)
  36. p2:=Parse([]string{"zhangsan","man"}).(*person)
  37. fmt.Println(p2)
  38. }

输出结果:
copy
    itemname:Apple
  1. personname:zhangsansex:man
  2. 成功:进程退出代码0.
原文链接:https://www.f2er.com/go/187895.html

猜你在找的Go相关文章