Skip to content

Commit 3ca0be6

Browse files
committed
added 1 more method for typed array
1 parent 6d6358d commit 3ca0be6

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

slicetostring.go

+20
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,23 @@ func SliceToString(data *[]any, separator *string) string {
2323

2424
return sliceStr.String()
2525
}
26+
27+
func SliceSameTypeToString[T any](data *[]T, separator *string) string {
28+
if len(*data) == 0 {
29+
return ""
30+
}
31+
32+
sliceStr := &strings.Builder{}
33+
// init memory initially
34+
sliceStr.Grow(len(*data)*len(*separator)*2 + (len(*data)-1)*len(*separator))
35+
isFirst := true
36+
for _, item := range *data {
37+
if !isFirst {
38+
sliceStr.WriteString(*separator)
39+
}
40+
sliceStr.WriteString(Format("{0}", item))
41+
isFirst = false
42+
}
43+
44+
return sliceStr.String()
45+
}

slicetostring_test.go

+7
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,10 @@ func TestSliceToString(t *testing.T) {
2929
})
3030
}
3131
}
32+
33+
func TestSliceSameTypeToString(t *testing.T) {
34+
separator := ":"
35+
numericSlice := []int{100, 200, 400, 800}
36+
result := stringFormatter.SliceSameTypeToString(&numericSlice, &separator)
37+
assert.Equal(t, "100:200:400:800", result)
38+
}

0 commit comments

Comments
 (0)