1. package main
  2. import (
  3. "fmt"
  4. "reflect"
  5. "strconv"
  6. )
  7. type Convert struct {
  8. data interface {}
  9. }
  10. func (r Convert) toString() string {
  11. fmt.Printf("类型是:%s\r\n", reflect.TypeOf(r.data))
  12. switch r.data.(type) {
  13. case string:
  14. return string(r.data.(string))
  15. case []uint8:
  16. return string(r.data.([]byte))
  17. case int:
  18. return strconv.Itoa(int(r.data.(int)))
  19. case int64:
  20. return strconv.FormatInt(int64(r.data.(int64)),10)
  21. case uint:
  22. return strconv.Itoa(int(r.data.(uint)))
  23. }
  24. return ""
  25. }
  26. func (r Convert) toInt() int {
  27. fmt.Printf("类型是:%s\r\n", reflect.TypeOf(r.data))
  28. var d int = 0
  29. switch r.data.(type) {
  30. case string:
  31. d, _ = strconv.Atoi(string(r.data.(string)))
  32. return d
  33. case []uint8:
  34. d, _ = strconv.Atoi( string(r.data.([]byte)))
  35. return d
  36. case int:
  37. return int(r.data.(int))
  38. case int64:
  39. return int(r.data.(int64))
  40. case uint:
  41. return int(r.data.(uint))
  42. }
  43. return 0
  44. }
  45. func main() {
  46. var v int64 = 123456
  47. r := Convert{v}
  48. s := r.toString()
  49. fmt.Println("hello"+s)
  50. i := r.toInt()
  51. fmt.Println(i+10)
  52. }

分类: web

标签:   golang