Библиотека Go-разработчика | Golang – Telegram
Библиотека Go-разработчика | Golang
23.5K subscribers
2.33K photos
47 videos
87 files
4.75K links
Все самое полезное для Go-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/32d20779

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
Пакет flag в Go

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

https://proglib.io/w/f5a50a26
​​💫 Инструментирование в Go

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

https://proglib.io/sh/l15apnJB4W
Инструментирование программ на Go чистым и гибким способом: https://proglib.io/w/bbaa1873
В примере затронута тема анонимных функций, которые отличаются от обычных тем, что они могут определяться внутри других функций и иметь доступ к контексту выполнения, а также этим функциям не назначается имя.

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

Анонимные функции могут использоваться как аргумент функции или как результат функции, а также они имеют доступ к окружению, в котором вызываются. Такая ситуация и рассматривается в примере.

Функция square определяет локальную переменную x и возвращает анонимную функцию. Анонимная функция увеливичает значение переменной x и возвращает ее квадрат.
Таким образом, мы можем зафисировать у внешней функции square состояние в виде переменной x, которое будет изменяться в анонимной функции. В результате получаем 9 и 16.
В статье разобраны причины, по которым использование пакета unsafe в Go может быть небезопасным: https://proglib.io/w/861850f1
Вакансия: Lead Go developer
Компания: MillionAgents, один из ведущих игроков на рынке полевых исследований.
Мы собираем данные о товарах и ценах для крупных розничных сетей и производителей FMCG-товаров
Вилка: 230 000 - 270 000₽ на руки
Локация: офис, м. Новослободская, Москва

👨‍🎓 Требуемый опыт: Golang, gRPC, Redis, Linux / PostgreSQL / Go microservices.
Отлично, если вы работали с: Docker, имели опыт управления командой.

📌 Условия:
- График 5/2, начало рабочего дня с 10:00 - 12:00 часов;
- Возможность работать пару дней в неделю удаленно;
- Очередь технических задач;
- Технически грамотное руководство;
- Официальное трудоустройство

По всем вопросам можно писать в личные сообщения @svetafeeva

➡️ Подробности - https://proglib.io/vacancies/lead-go-developer-millionagents-2020-06-04
Эта программа скомпилируется и выведет 30.

В строке 14 вышеупомянутой программы мы присваиваем адрес rect для r. Несмотря на то, что в строке 15 не использовался синтаксис (*r).area() и в связи с тем, что у area() есть получатель значения, Go способен интерпретировать r.area() как (*r).area(), что приводит к корректному выполнению.
Викторина в большей степени на внимательность. Что выведет программа?
Anonymous Quiz
35%
2
41%
1005
16%
Ошибка компиляции
3%
Нет правильного ответа
5%
Посмотреть результаты
Интересной частью вышеупомянутой викторины является строка 12:
i,_: = strconv.Atoi(s)

Данный участок кода создает новую переменную i, область действия которой находится только в пределах оператора if. Переменная i, которая выводится в строке 15, фактически определена в строке 9, а не та, которая определена в строке 12. Следовательно, эта программа выведет 2.

Стоит также остановиться на строке 12, где происходит конвертация строк в числа.

Строки можно преобразовывать в цифры, используя пакет strconv в стандартной библиотеке Go. Пакет strconv содержит функции для преобразования integer и float. Это очень распространенная операция при получении ввода от пользователя. Например, если у вас есть программа, которая запрашивает возраст пользователя, и когда пользователь вводит данные, они сохраняются как string. Затем вам нужно будет преобразовать их в int, чтобы выполнять математические операции.

Если строка не имеет десятичных дробей, вы можете преобразовать ее в целое число, используя функцию strconv.Atoi. Если вы знаете, что будете использовать число типа float, вам следует использовать strconv.ParseFloat.
Программа раннего доступа к GoLand 2020.2 открыта: вас ждет начальная поддержка Go 1.15, улучшенная и расширенная поддержка Go Modules, новые функции редактирования кода и многое другое.

https://proglib.io/w/177c6e0a