Комментарии 7
Из интересного это maps.Keys(m) и maps.Values(m), которые возвращают соответственно ключи и значения мапы
Похоже что в последний момент обе функции исключили из версии 1.21 — maps: remove Keys and Values for Go 1.21
Ну, там обсуждение большое, и вполне обоснованное.
Добавил уточнение в статью о возможных изменениях, спасибо!
Я обновил версию go до 1.21 и там есть эти функции, а что исключили?
В экспериментальном пакете golang.org/x/exp/maps функции Keys
и Values
остались, а в новый стандартный пакет maps они пока что не вошли (были исключены).
И надо сказать, это до сих пор так, дженерики по-прежнему используют далеко не все проекты.
Что ожидаемо, это больше актуально для библиотек. Если посмотреть на тот же C++, то там шаблоны используются в основном для библиотечного кода ну и ещё для вещей, где в Го всё решается интерфейсами и возможностями создать новый тип на базе существующего, чтобы он удовлетворял нужному интерфейсу.
И надо сказать, это до сих пор так, дженерики по-прежнему используют далеко не все проекты
Потому что пока их нельзя будет использовать в методах структур - смысла в дженериках мало. В бизнес-коде обычно процентов 80-90 функций - это именно методы.
В Go 1.21 существенно расширяется стандартная библиотека