Ссылки на посты и видео эпизодов: 1, 2, 3, 4, 5 (этот пост), 6, 7 и 8. Не связанные ссылки находятся в работе! Однако видео сейчас доступно на Youtube, так что зацените их!

На этом занятии мы рассмотрели множество тем, связанных с функциями Go. Наряду с некоторыми функциями устранения неполадок, отладки и другими функциями Jetbrains Goland IDE.

Если вы также хотите ознакомиться с этим материалом в виде книги, я настоятельно рекомендую Язык программирования Go Алана А.А. Донована и Брайана В. Кернигана в качестве отправной точки. Я использую его в качестве простого руководства, но также делаю гораздо больше в каждом потоке, включая экосистему, управление зависимостями с помощью godep, использование Goland от Jetbrains в IDE и многое другое. На этом занятии я подробно расскажу о функциях, подписях, объявлениях, рекурсии, возвращаемых значениях и многом другом.

Время видео и темы

2:50 — Знакомство со снежной страной чудес Сиэтла и 5-й эпизод сериала Learning Go. Введение в различные экранные переходы и тому подобное.
6:40 — Начало работы, открытие JetBrains Goland и создание нового проекта. Проект существует на Github как https://github.com/adron/learning-go-….
12:18 — Начинаем с функций в Go. См. запись в блоге, которую я написал по этой теме, для получения дополнительной информации об этом первом сеансе кода в сеансе эпизода 5.

Код — в этом первом примере я устанавливаю базовую функцию в Go, которая вызывается основной функцией. Приведенный ниже образец функции я назвал exampleExecutor, а сигнатура состоит из параметра int с именем this, параметра строки с именем that и возвращаемого параметра типа int и одного типа string. Таким образом, для сигнатуры функции у нас есть два входных параметра и два выходных параметра.

Функция делает очень мало, кроме как печатает переданные параметры, а затем возвращает параметры обратно в качестве возвращаемых параметров.

Рекурсия с Go и парсингом HTML

28:10 — Здесь я перехожу к рекурсии и примеру приложения, в основном взятого из книги, но с некоторыми очень характерными модификациями, которое анализирует HTML и различные узлы в HTML-документе.

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

Сначала устанавливается тип NodeType типа int32. Постоянный массив ErrorNode, TextNode, DocumentNode, ElementNode, CommentNode и DoctypeNode для определения различных узлов в HTML-документе. Затем общая структура с именем Node с типом, данными, атрибутом Attr и FirstChild с NextSibling, установленным в качестве указателя на *Node, который дает тип рекурсии памяти для базового типа. Затем, наконец, структура атрибутов с ключом и значением.

Одна из первых функций, которую я получаю, — это функция посещения. Получается так, как показано ниже. Здесь функция принимает параметр ссылки, который имеет тип строкового массива, имя параметра n, которое является указателем на узел a в html, а затем функция возвращает параметр типа строкового массива.

После этой функции я проработал и создал две дополнительные функции, одну для countsWordsAndImages и одну под названием CountWordsAndImages. Корпус специфичен для объема и использования функций, и соответственно они выглядят так в завершенном виде.

Затем все это заворачивается, с рекурсивными вызовами и прочим, в основную функцию для выполнения программы.

Запуск обработки ошибок && анонимных функций

1:32:40 — В этот момент в эпизоде ​​5 сеанса я попадаю в простую функцию обработки ошибок, а затем в сигнатуры функций и их настройку.
1:52:24 — Настройка некоторые анонимные функции и обзор того, что они из себя представляют.
1:59:00 — введение в паники в Go. После этого краткого введения я также расскажу о некоторых педантичных особенностях методов и функций и связанном с ним многословии, связанном с языком Go. Кроме того, я привожу больше примеров по этим особенностям для объявления функций, различных областей действия и других типов для вызовов функций и связанного с ними использования.

После этого подведение итогов сеанса представляет собой краткое введение в анонимные функции.