加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-16 18:04:33 所属栏目:大数据 来源:网络整理
导读:转载:http://blog.csdn.net/chdhust/article/details/51436882 面给出一个例子: [python] view plain copy packagemain import ( "errors" "fmt" ) typeitemstruct{ Namestring } func(iitem)String()string{ return fmt.Sprintf( "itemname:%v" ,i.Name)

转载: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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读