Returns a string by concatenating all of the elements in the collection, separated by the specified separator string.

  • Use reflect.ValueOf() to get the array or slice and the separator string, make() to create an appropriate string slice.
  • Use a for loop with Value.Len() and Value.Index() to iterate over each element, fmt.Sprintf() to convert it to a string.
  • Use strings.Join() to combine the strings using the separator provided.
import (

func Join(params ...interface{}) string {
    arr, sp := reflect.ValueOf(params[0]),
    ars := make([]string, arr.Len())

    for i := 0; i < arr.Len(); i++ {
        ars[i] = fmt.Sprintf("%v", arr.Index(i))

    return strings.Join(ars, sp)

Join([]int{1, 2, 3}, ".") // "1.2.3"