当前位置:   article > 正文

Golang中interface{}作为函数参数和函数返回值的使用_golang func() interface{} { return }

golang func() interface{} { return }
Golang中interface{}作为函数参数和函数返回值的使用

下面给出一个例子:

  1. package main
  2. import (
  3. "errors"
  4. "fmt"
  5. )
  6. type item struct {
  7. Name string
  8. }
  9. func (i item) String() string {
  10. return fmt.Sprintf("item name: %v", i.Name)
  11. }
  12. type person struct {
  13. Name string
  14. Sex string
  15. }
  16. func (p person) String() string {
  17. return fmt.Sprintf("person name: %v sex: %v", p.Name, p.Sex)
  18. }
  19. func Parse(i interface{}) interface{} {
  20. switch i.(type) {
  21. case string:
  22. return &item{
  23. Name: i.(string),
  24. }
  25. case []string:
  26. data := i.([]string)
  27. length := len(data)
  28. if length == 2 {
  29. return &person{
  30. Name: data[0],
  31. Sex: data[1],
  32. }
  33. } else {
  34. return nil
  35. }
  36. default:
  37. panic(errors.New("type match miss"))
  38. }
  39. return nil
  40. }
  41. func main() {
  42. p1 := Parse("Apple").(*item)
  43. fmt.Println(p1)
  44. p2 := Parse([]string{"zhangsan", "man"}).(*person)
  45. fmt.Println(p2)
  46. }

输出结果:
  1. item name: Apple
  2. person name: zhangsan sex: man
  3. 成功: 进程退出代码 0.


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号