1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-10 07:42:27 +08:00

Add ToPointer,ToSlicePointer,ToSlice func (#36)

* Add ToPointer func

* Add ToSlice and ToSlicePointer func

Co-authored-by: zhanghu <305835360@qq.com>
This commit is contained in:
tangqiu0205
2022-07-05 19:15:54 +08:00
committed by GitHub
parent fc0e104591
commit bab0a27e40
4 changed files with 48 additions and 0 deletions

View File

@@ -803,3 +803,21 @@ func LastIndexOf[T any](slice []T, value T) int {
return -1
}
// ToSlicePointer returns a pointer to the slices of a variable parameter transformation
func ToSlicePointer[T any](value ...T) []*T {
out := make([]*T, len(value))
for i := range value {
out[i] = &value[i]
}
return out
}
// ToSlice returns a slices of a variable parameter transformation
func ToSlice[T any](value ...T) []T {
out := make([]T, len(value))
for i := range value {
out[i] = value[i]
}
return out
}

View File

@@ -583,3 +583,21 @@ func TestLastIndexOf(t *testing.T) {
assert.Equal(1, LastIndexOf(arr, "a"))
assert.Equal(-1, LastIndexOf(arr, "d"))
}
func TestToSlice(t *testing.T) {
assert := internal.NewAssert(t, "TestToSlice")
str1 := "a"
str2 := "b"
assert.Equal([]string{"a"}, ToSlice(str1))
assert.Equal([]string{"a", "b"}, ToSlice(str1, str2))
}
func TestToSlicePointer(t *testing.T) {
assert := internal.NewAssert(t, "TestToSlicePointer")
str1 := "a"
str2 := "b"
assert.Equal([]*string{&str1}, ToSlicePointer(str1))
assert.Equal([]*string{&str1, &str2}, ToSlicePointer(str1, str2))
}