Guest User

Untitled

a guest
May 25th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. > A = [1, 2, 3]
  2. > ", ".join([str(a) for a in A])
  3. '1, 2, 3'
  4.  
  5. package main
  6.  
  7. import (
  8. "bytes"
  9. "fmt"
  10. "strconv"
  11. )
  12.  
  13. // Could not find a one-liner that does this :(.
  14. func arrayToString(A []int, delim string) string {
  15.  
  16. var buffer bytes.Buffer
  17. for i := 0; i < len(A); i++ {
  18. buffer.WriteString(strconv.Itoa(A[i]))
  19. if i != len(A)-1 {
  20. buffer.WriteString(delim)
  21. }
  22. }
  23.  
  24. return buffer.String()
  25. }
  26.  
  27. func main() {
  28. A := []int{1, 2, 3}
  29. fmt.Println(arrayToString(A, ", "))
  30. }
  31.  
  32. strings.Trim(strings.Join(strings.Fields(fmt.Sprint(A)), delim), "[]")
  33.  
  34. strings.Trim(strings.Join(strings.Split(fmt.Sprint(A), " "), delim), "[]")
  35.  
  36. strings.Trim(strings.Replace(fmt.Sprint(A), " ", delim, -1), "[]")
  37.  
  38. package main
  39.  
  40. import "fmt"
  41. import "strings"
  42.  
  43. func arrayToString(a []int, delim string) string {
  44. return strings.Trim(strings.Replace(fmt.Sprint(a), " ", delim, -1), "[]")
  45. //return strings.Trim(strings.Join(strings.Split(fmt.Sprint(a), " "), delim), "[]")
  46. //return strings.Trim(strings.Join(strings.Fields(fmt.Sprint(a)), delim), "[]")
  47. }
  48.  
  49. func main() {
  50. A := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
  51.  
  52. fmt.Println(arrayToString(A, ",")) //1,2,3,4,5,6,7,8,9
  53. }
  54.  
  55. func IntToString1() string {
  56. a := []int{1, 2, 3, 4, 5}
  57. b := ""
  58. for _, v := range a {
  59. if len(b) > 0 {
  60. b += ","
  61. }
  62. b += strconv.Itoa(v)
  63. }
  64.  
  65. return b
  66. }
  67.  
  68. func IntToString2() string {
  69. a := []int{1, 2, 3, 4, 5}
  70. b := make([]string, len(a))
  71. for i, v := range a {
  72. b[i] = strconv.Itoa(v)
  73. }
  74.  
  75. return strings.Join(b, ",")
  76. }
  77.  
  78. func IntToString3() string {
  79. a := []int{1, 2, 3, 4, 5}
  80. return strings.Trim(strings.Replace(fmt.Sprint(a), " ", ",", -1), "[]")
  81. }
  82.  
  83. BenchmarkIntToString1-12 3000000 539 ns/op
  84. BenchmarkIntToString2-12 5000000 359 ns/op
  85. BenchmarkIntToString3-12 1000000 1162 ns/op
  86.  
  87. func SplitToString(a []int, sep string) string {
  88. if len(a) == 0 {
  89. return ""
  90. }
  91.  
  92. b := make([]string, len(a))
  93. for i, v := range a {
  94. b[i] = strconv.Itoa(v)
  95. }
  96. return strings.Join(b, sep)
  97. }
  98.  
  99. data := []int{1,2,3}
  100.  
  101. func(x string) string { return x[6:len(x)-1]; }(fmt.Sprintf("%#v", data)) // 1, 2, 3
  102.  
  103. // Produces 1--2--3
  104. magic := func(s, d string) string { return strings.Replace(s[1:len(s)-1], " ", d, -1) }
  105. fmt.Println(magic(fmt.Sprint([]int{1, 2, 3}), "--"))
  106.  
  107. // As one liner
  108. fmt.Println(func(s, d string) string { return strings.Replace(s[1:len(s)-1], " ", d, -1) }(fmt.Sprint([]int{1, 2, 3}), "--"))
Add Comment
Please, Sign In to add comment