1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-07 14:12:28 +08:00

feat: add ToChannel function

This commit is contained in:
dudaodong
2022-07-11 11:11:16 +08:00
parent d06cde3fcf
commit ded42f8ff5
2 changed files with 31 additions and 0 deletions

View File

@@ -74,6 +74,20 @@ func ToChar(s string) []string {
return c
}
// ToChannel convert a array of elements to a read-only channels
func ToChannel[T any](array []T) <-chan T {
ch := make(chan T)
go func() {
for _, item := range array {
ch <- item
}
close(ch)
}()
return ch
}
// ToString convert value to string
func ToString(value any) string {
res := ""

View File

@@ -21,6 +21,23 @@ func TestToChar(t *testing.T) {
}
}
func TestToChannel(t *testing.T) {
assert := internal.NewAssert(t, "TestToChannel")
ch := ToChannel([]int{1, 2, 3})
val1, _ := <-ch
assert.Equal(1, val1)
val2, _ := <-ch
assert.Equal(2, val2)
val3, _ := <-ch
assert.Equal(3, val3)
_, ok := <-ch
assert.Equal(false, ok)
}
func TestToBool(t *testing.T) {
assert := internal.NewAssert(t, "TestToBool")