24 lines
378 B
Go
24 lines
378 B
Go
package stringutil
|
|
|
|
import "sort"
|
|
|
|
func MapKeys(m map[string]string) <-chan string {
|
|
ch := make(chan string)
|
|
if m == nil {
|
|
close(ch)
|
|
} else {
|
|
go func(ch chan<- string) {
|
|
defer close(ch)
|
|
keys := make([]string, 0, len(m))
|
|
for k := range m {
|
|
keys = append(keys, k)
|
|
}
|
|
sort.Strings(keys)
|
|
for _, k := range keys {
|
|
ch <- k
|
|
}
|
|
}(ch)
|
|
}
|
|
return ch
|
|
}
|