One-liner to transform []int into string

To convert
A := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}

to a one line delimited string like
“1,2,3,4,5,6,7,8,9”
use:

strings.Trim(strings.Join(strings.Fields(fmt.Sprint(A)), delim), "[]")

or:

strings.Trim(strings.Join(strings.Split(fmt.Sprint(A), " "), delim), "[]")

or:

strings.Trim(strings.Replace(fmt.Sprint(A), " ", delim, -1), "[]")

and return it from a function such as in this example:

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
}

To include a space after the comma you could call arrayToString(A, ", ") or conversely define the return as return strings.Trim(strings.Replace(fmt.Sprint(a), " ", delim + " ", -1), "[]") to force its insertion after the delimiter.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)