LINUX.ORG.RU

Go 1.9

 


1

7

Команда разработчиков Go представила релиз Go 1.9. Релиз доступен на странице загрузки. В данном релизе имеется много изменений в языке, стандартной библиотеке, среде выполнения и инструментарии. Большая часть усилий разработчиков была положена на усовершенствование среды выполнения и инструментария.

Наиболее важным изменением языка является введение псевдонимов типов. Объявление псевдонима типа выглядит следующим образом:

type T1 = T2

Это объявление вводит псевдоним Т1 для типа Т2, таким же образом, как byte всегда был псевдонимом для uint8. Дизайн-документ псевдонимов типов и статья о рефакторинге объясняют это дополнение более детально.

Новый пакет math/bits предоставляет функции подсчета и обработки битов для целых беззнаковых чисел, которые, когда это возможно, реализуются специальными инструкциями CPU. Например, в системах x86-64 bits.TrailingZeros(x) использует инструкцию BSF.

Пакет sync добавил новый тип Map, безопасный для многопоточного доступа. Важно понимать, что это не общая замена типа Map; обратитесь к документации, чтобы узнать, когда она должна использоваться.

В пакет testing также добавлено дополнение. Новый метод Helper, добавленный к testing.T и testing.B, отмечает вызывающую функцию в качестве тестовой вспомогательной функции. Когда тестовый пакет печатает информацию о файле и строке, он показывает местоположение вызова вспомогательной функции вместо строки в самой вспомогательной функции.

Пакет time теперь прозрачно отслеживает монотонное время в каждом временном значении, делая вычисление длительности между двумя временными значениями безопасной операцией.

Наконец, в рамках усилий, направленных на ускорение работы компилятора, Go 1.9 компилирует функции в пакете одновременно.

Go 1.9 включает в себя еще много дополнений, улучшений и исправлений. Полный список изменений и дополнительную информацию об улучшениях можно найти в примечаниях к выпуску Go 1.9.

Чтобы отпраздновать релиз, группы пользователей Go по всему миру проводят вечеринки.

>>> Подробности



Проверено: Klymedy ()

Наиболее важным изменением языка является введение псевдонимов типов. Объявление псевдонима типа выглядит следующим образом:

Зачем в языке без дженериков это нужно?

O02eg ★★★★★ ()

Наиболее важным изменением языка является введение псевдонимов >типов. Объявление псевдонима типа выглядит следующим образом:
type T1 = T2

На шаг ближе к сишной помойке. Даёшь каждой библиотеке свой псевдоним int'а.

Чтобы отпраздновать релиз, группы пользователей Go по всему миру проводят вечеринки.

Рафинированные хипсторы.

ox55ff ()
Ответ на: комментарий от anonymous

Зачем нужны дженерики?

Чтоб не писать классы коллекций под каждый из стопятисот типов, например? Ах, да, в го нет классов. А что там есть? Жонглирование указателями?

Bahamut ()
Ответ на: комментарий от Alve

Мне сейчас этот лепет гоферов на тему зачем нужны дженерики напоминают нашествие ущербных несколько лет назад, никак не понимавших, что не так с php.

anonymous ()

Бог с ними, с дженериками. Не так уж часто они и нужны, а когда нужны, можно что-нибудь придумать. Вот с обработкой ошибок там всё действительно очень плохо. А ошибки на каждой строчке.

Legioner ★★★★★ ()
Ответ на: комментарий от anonymous

Die ganzen Zahlen hat der liebe Gott gemacht, alles andere ist Menschenwerk.

так что в голэнге есть дженерики как и во всех языках - а вот сахором абстракций меньше приходиться обмазываца - от того обмазолюбители так и страдают что той массы которой в некоторых языках хоть ... ... в голэнге почти и нет что даже на модное обмазывание не достаточно.

удачи в намызвании!

anonymous ()
Ответ на: комментарий от Legioner

Если сравнивать с исключениями, то писать код дольше, зато runtime ошибок намного меньше.

В языках с исключениями, увы, очень часто забывают обработать ошибку, и потом нужно читать трейс, чтобы разобраться.

Растовский подход с Result немного интереснее, но кода получается не сильно меньше. И вероятность пропустить ошибку плюс минус такая же.

Davidov ★★★★ ()
Последнее исправление: Davidov (всего исправлений: 1)
Ответ на: комментарий от ox55ff

На шаг ближе к сишной помойке. Даёшь каждой библиотеке свой псевдоним int'а.

Раньше можно было написать «type Number int» и вот тебе псевдоним для int'а. В этом месте ничего не поменялось.

lochness ()
Ответ на: комментарий от Zenom

Зачем вообще нужен язык без дженериков? Впрочем, Go и дженерики не помогут.

Видимо, тебе бесполезно говорить, что с помощью Go люди зарабатывают хорошие деньги.

SuoiCat ()
Ответ на: комментарий от Legioner

Вот с обработкой ошибок там всё действительно очень плохо. А ошибки на каждой строчке.

Мне вот норм без дженериков.

Вот с обработкой ошибок там всё действительно очень плохо.

Все нормально там с обработкой ошибок. То есть не хорошо и не плохо. Как и в других языках. Есть плюсы, есть минусы. Честно, не знаю языков с ОЧЕНЬ КЛАССНОЙ обработкой ошибок.

А ошибки на каждой строчке.

Что это ещё за утверждение такое? Какие ещё ошибки в каждой строчке? Если писать код как обезьяна, то в любом языке в каждой строчке будут ошибки.

SuoiCat ()
Ответ на: комментарий от NoviceNIX

Всё это хипстерятина, эти ваши go, так и не понял его нужности

Хипстерятина и Go - устаревший форсед мем, как старая школьная кличка. Знаю людей, который перешли из C/C++/Erlang на Go и достаточно тепло к нему относятся.

SuoiCat ()
Ответ на: комментарий от NoviceNIX

не понял

простенький без подводных камней в виде сахара, учится за неделю, не надо возиться чтобы завести многопоточность. Отлично подходит для домашних задач для которых окажется мало питона (например написать многопоточную выгрузку картинок будет очень быстро)

Dred ★★★★ ()
Ответ на: комментарий от Dred

учится за неделю, не надо возиться чтобы завести многопоточность. Отлично подходит для домашних задач

Заманчиво. Придется видимо покурить его. Питонятина (аля некстгенбейсик) реально достал по мелочам

NoviceNIX ()
Ответ на: комментарий от theNamelessOne

built-in коллекции

дженерики просят те, кто не может придумать как придраться к Го (а могли бы к рантайму например), обычно они не знают что там даже классов нету. Те кто ЯП действительно попробовал - обходятся интерфейсами.

Dred ★★★★ ()
Ответ на: комментарий от Dred

Верно. Вон растоманам выдали высокоуровневые цацки, теперь они изрыгают тонны ненависти на свои же поделки. Запутались, видете ли, в своей системе типов и подавай им цацок еще более высокоуровневых

https://www.reddit.com/r/rust/comments/6s4axu/asynchronous_rust_complaints_su...

makoven ★★★★ ()
Последнее исправление: makoven (всего исправлений: 3)
Ответ на: комментарий от Dred

дженерики просят те, кто не может придумать как придраться к Го

Да-да.

обычно они не знают что там даже классов нету

А что, для дженериков классы нужны?

Те кто ЯП действительно попробовал - обходятся интерфейсами.

А у них другой выбор есть?

theNamelessOne ★★★★★ ()
Ответ на: комментарий от Dred

Нету классов? И что? В расте их тоже нету и я должен отметить, что так даже лучше, хотя на то что бы понять почему так, а не иначе, выучить местные подходы и привыкнуть ушло не мало времени. В Go же от дженериков отказались что бы примитивные формы жизни смогли его осилить. Деградация.

dearAmomynous ()