Нужно написать функцию поиска ключа (key) словаря, у которого в этом словаре самое большое значение (value). Это неэффективная операция, выполняется за О(n), но допустим она нужна и должна работать для любых типов, если тип value является сравниваемым
Точно легко делается? Ну например у нас множество есть сравниваемых типов. Интерфейсы для них уже есть? Можно короткий пример для массива например, поиск максимума для почти всех встроеных типов (они почти все сравниваемые). Например хотя бы для всех типов чисел и строк. В любом другом ЯП кроме Turbo Pascal это делается легко - Python, Ruby, C++, Rust, Scala, Java, C#, JavaScript, Common Lisp, Scheme, R, you name it.
Именно. В других языках не придется. Это по сути единственный камень преткновения, который отделяет Go от нормальных ЯП. Не стоит его списывать со счетов по этому поводу, так как стоит авторам впилить с какой-то версии эту фичу и Go моментально станет юзабельным.
Но, с другой стороны, in daily business мне на это ещё нарываться не приходилось. Гораздо чаще нужно что-то единственное-конкретное, а не абстрактно-общее, которое будет работать со всеми типами.
Единственное место, где я упёрся в нехватку generics — это когда я попытался написать интерпретатор APL. И там я подгруз. Но это скорее от недостатка опыта и косности мышления было. ;)
С выходом 1.5 посмотрю, как они обошли эту проблему у себя.
щито? а можно для сарперов(старпёров / стартаперов?) на родной мове? хайп? хн? продакшен?
Заметил последнюю неделю хайп вокруг него на хн и хабре. Кто использует в продакшене?
Перевод художественный:
Заметил за последнюю неделю оживление вокруг Golang на HackerNews (ресурс для публикации ссылок на проекты и всякие статьи, связанные с технологиями и софтом) и Хабре (раковник, куда тащую статьи, найденные через HackerNews и Reddit). Кто использует сей язык для разработки чего-либо серьёзного?
А зачем тебе знать юзкейс? Знание (или отсутсвие) юзкейса отменит то, что обобщенное программирование необходимо для написания библиотек обработки данных, а в Go это крен сделаешь?
Разрешаю написать функцию без строк, просто для всех типов отсюда
А на кой мне абстрактный пример без юзкейса? Вот ты говоришь, запилят дженерики и все сразу ломанутся на Golang. А я тебе говорю, что джва года работая с Golang острой необходимости в дженериках не ощутил.
P.S.: Для всех типов оттуда придётся делать не очень красивый switch-case (но подобное отчего-то приходится делать крайне редко). Для кастомных типов - интерфейс создам.
Ну просто я не могу себе представить совсем нормальные вещи на го - например библиотек по работе с различными структурами данных. А так го хорошо пристроился - массив, список, slice, map, «640кб хватит всем» и тогда при таком раскладе дейсвительно нафиг нужны дженерики. Сделаем пару структур данных, прочитерим вшив их в язык, дадим им специальный синтаксис. А если подобные, но другие структуры хотят написать пользователи - то хрен им