6.6 KiB
Executable file
channels
import "go.neonxp.dev/extra/channels"
Функции работы над каналами
Index
func FanIn
func FanIn[T any](chans ...chan T) chan T
FanIn сливает несколько каналов в один
func FanOut
func FanOut[T any](in chan T, workers int) []chan T
FanOut раскидывает очередь канала на несколько каналов равномерно
collections
import "go.neonxp.dev/extra/collections"
Функции работы над обобщенными коллекциями
Index
func Merge
func Merge[T utils.Sortable[T]](s1, s2 []T) []T
Merge стабильное слияние двух слайсов
func MergeScalar
func MergeScalar[T utils.Scalar](s1, s2 []T) []T
MergeScalar стабильное слияние двух слайсов скаляров
levenshtein
import "go.neonxp.dev/extra/levenshtein"
Пакет с функциями получения редакторских правок по Левенштейну
Index
type Edit
Edit редакторская правка описывающее одно действие над исходной последовательностью
type Edit struct {
Type EditType // Тип правки: Вставка/Замена/Удаление
Idx1 int // Индекс элемента из первой последовательности
Idx2 int // Индекс элемента из второй последовательности
}
func Levenshtein
func Levenshtein[T comparable](s1, s2 []T, cost EditCost[T]) []Edit
Levenshtein возвращает последовательность правок для превращения последовательности элементов s1 в s2 с учетом стоимостей операций возвращаемых функцией cost TODO в алгоритме не предусмотрена экономия памяти ¯\_(ツ)_/¯
func String
func String(s1, s2 string) []Edit
String возвращает последовательность правок для превращения строки s1 в строку s2
func Strings
func Strings(s1, s2 []string) []Edit
Strings возвращает последовательность правок для превращения слайса строк s1 в слайс строк s2
type EditCost
EditCost функция возвращающая стоимость действия t над элементами from, to
type EditCost[T comparable] func(t EditType, from *T, to *T) int
type EditType
EditType тип правки
type EditType int
const (
Insert EditType = iota // Вставка
Replace // Замена
Delete // Удаление
)
math
import "go.neonxp.dev/extra/math"
Пакет с математическими функциями над обобщенными типами
Index
- func Max[T utils.Sortable[T]](a ...T) T
- func MaxScalar[T utils.Scalar](a ...T) T
- func Min[T utils.Sortable[T]](a ...T) T
- func MinScalar[T utils.Scalar](a ...T) T
func Max
func Max[T utils.Sortable[T]](a ...T) T
Max возвращает максимальное из переданных Sortable значений
func MaxScalar
func MaxScalar[T utils.Scalar](a ...T) T
MaxScalar возвращает максимальное из переданных скалярных значений
func Min
func Min[T utils.Sortable[T]](a ...T) T
Min возвращает минимальное из переданных Sortable значений
func MinScalar
func MinScalar[T utils.Scalar](a ...T) T
MinScalar возвращает минимальное из переданных скалярных значений
subseq
import "go.neonxp.dev/extra/subseq"
Пакет с функциями получения подпоследовательностей например\, подстроки
Index
- func MaxSubsequence(s1, s2 string) string
- func MaxSubset[T comparable](s1, s2 []T) []T
- func MaxSubsetSequence[T comparable](s1, s2 []T) []T
- func MaxSubstring(s1, s2 string) string
func MaxSubsequence
func MaxSubsequence(s1, s2 string) string
MaxSubsequence возвращает максимальную общую подпоследовательность символов
func MaxSubset
func MaxSubset[T comparable](s1, s2 []T) []T
func MaxSubsetSequence
func MaxSubsetSequence[T comparable](s1, s2 []T) []T
func MaxSubstring
func MaxSubstring(s1, s2 string) string
MaxSubstring возвращаает максимальную общую подстроку
utils
import "go.neonxp.dev/extra/utils"
Всякое разное
Index
func Ptr
func Ptr[T any](t T) *T
Ptr получение указателя от произвольного значения, например, ToPtr(true) -> *bool(true)
type Scalar
Scalar соответствует скалярам над которыми определены операции сравнения
type Scalar interface {
// contains filtered or unexported methods
}
type Sortable
Sortable соответствует типам над которыми определена операция Less
type Sortable[T any] interface {
Less(T) bool
}
Generated by gomarkdoc