LINUX.ORG.RU

Go 1.9

 


1

6

Команда разработчиков 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 ()

Ответ на: комментарий от NextGenenration

Нет в Go родителей и потомков, ООП тоже нет. А если очень нужно то уже есть много хороразных языков которые подойдут нуждающимся в ООП лучше: Python, Ruby, JS, C++, Java и ещё там всякое разное.

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

Нет в Go родителей и потомков, ООП тоже нет

Не спасибо КО, я это уже знаю

А если очень нужно

Мне тут и тут говорили другое. Попрошу на следующем шабаше ведьм собрании гоферов провести разъяснительную работу с AUX, чтобы он больше не вводил людей в заблуждение.

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

Одна лыжа вполне себе может пригодится для сушки белья же!
NextGenenration

Тогда пиши на PL/1 :-)))))) Там столько всего «на всякий случай» на балконе лежит ... и балкон тот в 1000 раз больше собственно квартиры :))))

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

Я рад что тебе весело ^͜^ Чуть ниже я обосновал необходимость этого. Есть возражения?

ЗЫ у тебя колько ртов же! >͜<

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

Go уже не пользуюсь и проблемы нет. Swift больше нравится ...

Нормально. Некоторым - блондинок, некоторым - брюнеток. А мне так вообще - рЫжЫх! ;-)))

... благо под Linux прекрасно работает.

А вот это уже брехня! Если ты menangen думаешь что линукс только у тебя есть и больше никто не щупал - то ты д***л! :) Swift под линкс - это то же что и .нет ... - нихрена под него нет! И работает пока «папе» не надоело. Нафиг оно?!?!

Впрочем если борщ - бесплатный, то почему нет?! :)))

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

Для серверной разработки?

Да. Демоны на ЕС2 инстансах, принимают нехилую пачку потоков, перелопачивают, и выдают результат разложенный по S3 бакетам. Ну конечно такого добра у всех и на всех ёзыках полно, но вот у нас теперь на Го.

И взлетело?

Да. У нас динамический пул инстансов. Ранее пачки их поднимало потому что ... А сейчас почти всегда __один__ (жырный) инстанс всё перемолотить успевает :) Ну иногда и до трёх доходит - это мы перестраховываемся :) Правдо там идле корес больше нет :) Но ЕС2 нас не по лоаду чаржит, а по количеству - так что мы в профите :-р

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

А что не так? ООП есть, методы переопределяются?

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

iOS приложения это не продакшен?)

Имя их? Ну конечно же ты не назовешь :-))) Ибо весь продакшен под гейос на ObjectC\C++ налабан ... И если честно - это _только_ Adobe 8-) Больше там ничего нет. А под Adobe ты на Swift плагины не сделаешь.

Так что menangen - брехло ты заднедырчатое! :-р

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

При изменении родителя мне в go потребуется менять 1 интерфейс(не нужно к примеру в c#), 1 родителя.

В Го нет наследования ТЧК.

я просил без boilerplate, NextGenenration

Тебе не поможет, у тебя boilerplate уже в моске - видимо твоя судьба - С# ... это не для того чтобы обидеть, я нормально отношусь к тому что разным людям - разные девушки нравяЦЦо :)

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

Попрошу на следующем шабаше ведьм собрании гоферов

А ты сам то C#-нутый - не секта? :-) Значит ты дефективный на весь череп - в Го ищешь ООП-а, в политике - правды, и т.д. Грех смеяться, просто - удачи! :-\

провести разъяснительную работу с AUX, чтобы он больше не вводил людей в заблуждение.

У нас с 1986 года уже плюрализьмЪ и свобода слова. Если своей головы нет, ничего не поможет. Запретишь этому дурь толкать, найдётся другой...

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

В Го нет наследования ТЧК

Найди того анонима кто написал пример и сообщи ему это. А то ходят и вводят в заблуждения

Тебе не поможет, у тебя boilerplate уже в моске - видимо твоя судьба - С#

Тебе нужен пример на php?

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

Я тебе скажу только одно слово:

ведро

... и ничего - не потонули в трясинах как то! :)

Хотя, для «кровавого», ООП свою жизнеспособность конечно даааавно доказало. Спорить с этом - глупо.

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

А ты сам то C#

Я просто не пересобрал кое какой компилятор под свою ось. Соберу - буду писать на нём. ^͜^

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

Хотя, для «кровавого», ООП свою жизнеспособность конечно даааавно доказало

Создавать на каждый чих новый класс как минимум глупо.

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

видимо твоя судьба - С#
Тебе нужен пример на php?

... ой, нет! Лучше не нада ... 8-)

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

Ага - ниже пояса пнуть и я могу. Или там в рояль нас*** ... Но тут этого никто не поймёт! Зверьё-с! (С) Ржевский.

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

Дык! А вдруг ИРЛ ты качок какой, и троллишь нас - бедных очкарикаффф :-D

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

Найди того анонима кто написал пример и сообщи ему это. А то ходят и вводят в заблуждения

Наследования нет, но есть встраивание и что?

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

Наследования нет, но есть встраивание и что?

Как минимум агрегирование != наследование и теперь я ясно понимаю то что мою задачу просто не решить, не стремлюсь нагородить велосипед который не работает в половине случаев и не пытаюсь упрекнуть авторов go в том что они лгут про ооп.

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

Неправда. Я под слакой запускал и в докер контейнере в том числе (компилер).

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

В твоем мире ООП это С++ реализация, что глупо. Javascript, Python, Go имеют свои реализации ООП.

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

В go такое же ООП как и в Python 🐍 многопоточность.

menangen ★★★★★ ()
Ответ на: Зачем ныть в ветке про Go, если от anonymous

Просто на Swift и D получаешь удовольствие от написания программы, а в Go че-то какая-та куцая херня с отловом этих ошибок и с созданием структур и последующего патчинга методами, имхо, это звиздец.

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

Если Вам господину обмазываться абстракциями нравится, это не значит что это правильно. На Гоу очень понятный код, который приятно читать и поддерживать. А я получаю удовольствие, только в конце месяца, когда перечисляют зарплату, и чем меньше я еб%сь с кодом, тем лучше.

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

То есть ты кодишь только ради денег, и всё?

Только ради них!Или ты предлагаешь работать на работодателя бесплатно?

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

Предлагаю получать удовольствие от работы, выбрав качественный и удобный тулчейн.

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

Предлагаю получать удовольствие от работы, выбрав качественный и удобный тулчейн.

Удовольствие от работы без круглой суммы не бывает. Нас гоу устраивает полностью,с кадрами проблем нет, читаемость кода на высоте, что ещё надо?

AUX ★★ ()

AUX menangen вот скажите мне, что в python, js я не могу воспользоваться виртуальными методами?

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

На сколько я помню в пистоне все методы виртуальные

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

На Гоу очень понятный код, который приятно читать и поддерживать

И ктож знал, что вот это

length := len(b)
if b == nil { // что за идиотская манера сначала использоватье переменную, и только потом проверять?
    length = len(s)
}
будет эквивалентно этому?
var length int
if b == nil {
    length = len(s)
} else {
    length = len(b)
}
И что за корявость такая, если нельзя записать как
length := (b == nil) ? len(s) : len(b)
или лучше
length := len(b == nil ? s : b)
или даже так
length := len(b || s)

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

На сколько я помню в пистоне все методы виртуальные

Как видишь это отличается от того что предоставляет go

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

length := (b == nil) ? len(s) : len(b)

или лучше length := len(b == nil ? s : b) или даже так length := len(b || s)

Вот это реально ужасно!

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

То есть, если тебе предложат сумму на 50.000 р больше и поставят условие писать на Swift - ты с радостью и удовольствием от работы начнешь писать на свифте?

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

Не разобрался человек как там наследование делается, с кем не бывает?

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

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

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

Вот это реально ужасно!

Что тут ужасного? Было 5 строк(ну ладно, если брать говнокод оптимизируемый компилятором то 4), а стала одна. Или ты адепт бюрократии? Или синтаксис языка не можешь выучить?

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

Или синтаксис языка не можешь выучить?

Теперь открой описание С++ на тысяче листах и ты поймешь, что добавлять всё попало в язык не стоит если это даже сократит код.

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

что добавлять всё попало в язык не стоит если это даже сократит код.

Проблема крестов скорее в бюрократии, чем в фичах. Как таковых фич там очень мало. Вот что такое * ? Это умножение? Разыменовывание указателя? Объявление указаетеля? А теперь давай сравним со ссылками. Проблем с нулевым указателем нет, бюрократии нет, неоднозначности нет. Что удивительно, так это то что компилятор понимает сам, когда надо взять указатель, а когда надо его разыменовать. Помог ли «*» сократить код? Риторический вопрос. Реального сокращения там полторы пункта от силы, и то они сильно снижают однозначность. В то время как запись length := len(b || s) однозначна чуть более чем полностью

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

Помимо boilerplate у этого решения в Go имеются накладные расходы.

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

Вот для тебя даже статью накатали

Офигеть! Невиданный успех! На swift-е смогли сделать ябло-only-говно-апп с формочками! К успеху идете пацаны! :-))))))))))))))

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

Кто тебя научил в шарпе ставить открывающую скобку не на новой строке?

nikolnik ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.