client.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package main
  2. import (
  3. slog "bet24.com/log"
  4. _ "bet24.com/servers/micros/ladderservice/proto"
  5. "log"
  6. "strconv"
  7. "strings"
  8. )
  9. type Test struct {
  10. Index int
  11. }
  12. func (t *Test) Print() {
  13. slog.Release("Test.Print %d", t.Index)
  14. }
  15. var chars = []string{"A", "B", "C", "D", "E", "F", "G",
  16. "H", "I", "J", "K", "L", "M", "N",
  17. "O", "P", "Q", "R", "S", "T",
  18. "U", "V", "W", "X", "Y", "Z"}
  19. func getString(s string) string {
  20. index, err := strconv.Atoi(s)
  21. if err != nil {
  22. return ""
  23. }
  24. if index >= len(chars) {
  25. return ""
  26. }
  27. return chars[index]
  28. }
  29. func decode(in string) []string {
  30. if len(in) == 0 {
  31. return []string{}
  32. }
  33. var ret []string
  34. // 如果第一位是0
  35. if strings.HasPrefix(in, "0") {
  36. s := chars[0]
  37. //ret = append(ret, chars[0])
  38. next := decode(in[1:])
  39. for _, v := range next {
  40. ret = append(ret, s+v)
  41. }
  42. return ret
  43. }
  44. if len(in) == 1 {
  45. if value, err := strconv.Atoi(in); err == nil {
  46. ret = append(ret, chars[value])
  47. }
  48. return ret
  49. }
  50. _, err := strconv.Atoi(in)
  51. if err != nil {
  52. return ret
  53. }
  54. s := getString(string(in[0]))
  55. next := decode(in[1:])
  56. for _, v := range next {
  57. ret = append(ret, s+v)
  58. }
  59. str2 := getString(in[:2])
  60. if str2 != "" {
  61. next := decode(in[2:])
  62. for _, v := range next {
  63. ret = append(ret, str2+v)
  64. }
  65. }
  66. return ret
  67. }
  68. func main() {
  69. logger, err := slog.New("debug", "debug", "log/client", log.LstdFlags)
  70. if err == nil {
  71. slog.Export(logger)
  72. }
  73. s := "1213407"
  74. slog.Debug("decode %v", decode(s))
  75. for {
  76. }
  77. }