Я колись вже коригував чийсь нескладний код на Go, але свого з нуля не писав. Зараз спробував — думку не змінив: проста мова, доволі легко читається, легко пишеться, на виході сінгл бінарь без залежностей. Клас.
Але-е-е-е. Мова також максимально нудна! Навіть в Python можна хоча б декораторами обмазатися, щоб зробити упорото, зате красиво. А тут тупо ніфіга нема.
Треба було множину точок зробити (set) — в стандартній лібі немає. Довелося емулювати через
map[point]struct{} 🤮 (це типу мапінг з точок в порожні структури). Захотілося фільтранути список по предикату — фільтра немає 😵 Ок-ок, раніше не було дженеріків. До речі не уявляю, як люди жили в статично-типізованій мові без дженериків — жах. Наче Java 2. Та зараз-то вони є! Очікуєш, що ось нині-то подобавляють нарешті зручностей! А ніфіга. Накостилив свій:
func filter[T any](input []T, predicate func(T) bool) []T {
result := []T{}
for _, item := range input {
if predicate(item) {
result = append(result, item)
}
}
return result
}Таке короч. Жити можна, але хз. Наче жуйка, що втратила смак пів години тому.