FieldsFunc пропускает любое количество подряд идущих разделителей и не создаёт пустых элементов между ними — в отличие от Split, который создаёт пустую строку на каждый лишний разделитель:data := []byte("foo,,bar,,,baz")
parts := bytes.FieldsFunc(data, func(r rune) bool {
return r == ','
})
// ["foo" "bar" "baz"]
bytes.Split([]byte("foo,,bar"), []byte(","))
// ["foo" "" "bar"] — пустой элемент между двумя запятыми🐸 Библиотека Go для собеса