Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- > A = [1, 2, 3]
- > ", ".join([str(a) for a in A])
- '1, 2, 3'
- package main
- import (
- "bytes"
- "fmt"
- "strconv"
- )
- // Could not find a one-liner that does this :(.
- func arrayToString(A []int, delim string) string {
- var buffer bytes.Buffer
- for i := 0; i < len(A); i++ {
- buffer.WriteString(strconv.Itoa(A[i]))
- if i != len(A)-1 {
- buffer.WriteString(delim)
- }
- }
- return buffer.String()
- }
- func main() {
- A := []int{1, 2, 3}
- fmt.Println(arrayToString(A, ", "))
- }
- strings.Trim(strings.Join(strings.Fields(fmt.Sprint(A)), delim), "[]")
- strings.Trim(strings.Join(strings.Split(fmt.Sprint(A), " "), delim), "[]")
- strings.Trim(strings.Replace(fmt.Sprint(A), " ", delim, -1), "[]")
- package main
- import "fmt"
- import "strings"
- func arrayToString(a []int, delim string) string {
- return strings.Trim(strings.Replace(fmt.Sprint(a), " ", delim, -1), "[]")
- //return strings.Trim(strings.Join(strings.Split(fmt.Sprint(a), " "), delim), "[]")
- //return strings.Trim(strings.Join(strings.Fields(fmt.Sprint(a)), delim), "[]")
- }
- func main() {
- A := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
- fmt.Println(arrayToString(A, ",")) //1,2,3,4,5,6,7,8,9
- }
- func IntToString1() string {
- a := []int{1, 2, 3, 4, 5}
- b := ""
- for _, v := range a {
- if len(b) > 0 {
- b += ","
- }
- b += strconv.Itoa(v)
- }
- return b
- }
- func IntToString2() string {
- a := []int{1, 2, 3, 4, 5}
- b := make([]string, len(a))
- for i, v := range a {
- b[i] = strconv.Itoa(v)
- }
- return strings.Join(b, ",")
- }
- func IntToString3() string {
- a := []int{1, 2, 3, 4, 5}
- return strings.Trim(strings.Replace(fmt.Sprint(a), " ", ",", -1), "[]")
- }
- BenchmarkIntToString1-12 3000000 539 ns/op
- BenchmarkIntToString2-12 5000000 359 ns/op
- BenchmarkIntToString3-12 1000000 1162 ns/op
- func SplitToString(a []int, sep string) string {
- if len(a) == 0 {
- return ""
- }
- b := make([]string, len(a))
- for i, v := range a {
- b[i] = strconv.Itoa(v)
- }
- return strings.Join(b, sep)
- }
- data := []int{1,2,3}
- func(x string) string { return x[6:len(x)-1]; }(fmt.Sprintf("%#v", data)) // 1, 2, 3
- // Produces 1--2--3
- magic := func(s, d string) string { return strings.Replace(s[1:len(s)-1], " ", d, -1) }
- fmt.Println(magic(fmt.Sprint([]int{1, 2, 3}), "--"))
- // As one liner
- 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