0% нашли этот документ полезным (0 голосов)
5 просмотров45 страниц

Go2 Interfaces

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

Загружено:

ycwu0509
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
5 просмотров45 страниц

Go2 Interfaces

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

Загружено:

ycwu0509
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd

Язык Go

Ещё больше конструкций языка


Алексей Тарасов
Профессионально пишу нерабочий код

@tarasovion
Что уже знаем?
(hopefully)
tl;dr по предыдущему занятию

1.
Go — современный язык,
который фокусируется на
производительности,
асинхронности и простоте
разработки

3
tl;dr по предыдущему занятию

1. 2.
Go — современный язык, Memory safety, наличие
который фокусируется на Garbage Collector-а
производительности,
асинхронности и простоте
разработки

4
tl;dr по предыдущему занятию

1. 2. 3.
Go — современный язык, Memory safety, наличие Явная обработка ошибок.
который фокусируется на Garbage Collector-а Концепция “error as a value”
производительности,
асинхронности и простоте
разработки

5
tl;dr по предыдущему занятию

1. 2. 3.
Go — современный язык, Memory safety, наличие Явная обработка ошибок.
который фокусируется на Garbage Collector-а Концепция “error as a value”
производительности,
асинхронности и простоте
разработки

4.
Объявление переменных.
Инициализация нулевым
значением тех переменных,
которым явно не присвоено
значение. “:=“ vs “=“

6
tl;dr по предыдущему занятию

1. 2. 3.
Go — современный язык, Memory safety, наличие Явная обработка ошибок.
который фокусируется на Garbage Collector-а Концепция “error as a value”
производительности,
асинхронности и простоте
разработки

4. 5.
Объявление переменных. Базовые конструкции языка: if,
Инициализация нулевым for, функции
значением тех переменных,
которым явно не присвоено
значение. “:=“ vs “=“

7
tl;dr по предыдущему занятию

1. 2. 3.
Go — современный язык, Memory safety, наличие Явная обработка ошибок.
который фокусируется на Garbage Collector-а Концепция “error as a value”
производительности,
асинхронности и простоте
разработки

4. 5. 6.
Объявление переменных. Базовые конструкции языка: if, Настройка рабочего
Инициализация нулевым for, функции окружения: установка go,
значением тех переменных, настройка vscode
которым явно не присвоено
значение. “:=“ vs “=“

8
Что узнаем сегодня?
(hopefully)
План на сегодняшнее занятие

1.
Обзор на систему пакетов. Инициализация
проекта. Установка и управление зависимостями

10
План на сегодняшнее занятие

1. 2.
Обзор на систему пакетов. Инициализация Структуры и интерфейсы. Примеры паттернов,
проекта. Установка и управление зависимостями использующих интерфейсы

11
План на сегодняшнее занятие

1. 2.
Обзор на систему пакетов. Инициализация Структуры и интерфейсы. Примеры паттернов,
проекта. Установка и управление зависимостями использующих интерфейсы

3.
Некоторые пакеты и основные концепции из stdlib.
Краткий обзор на bytes, strings, errors, io, net, os

12
План на сегодняшнее занятие

1. 2.
Обзор на систему пакетов. Инициализация Структуры и интерфейсы. Примеры паттернов,
проекта. Установка и управление зависимостями использующих интерфейсы

3. 4.
Некоторые пакеты и основные концепции из stdlib. Новейшая фича из Go 1.23 — итераторы. Pull vs Push model.
Краткий обзор на bytes, strings, errors, io, net, os Использование итераторов в for-range выражениях

13
Система пакетов
Импорт системных модулей

15
Пакет = директория

[Link]

16
Инициализация проекта

17
Поддерживаемые VCS для
пользовательских пакетов
▪ Bazaar(.bzr)

▪ Fossil (.fossil)

▪ Git (.git)

▪ Mercurial (.hg)

▪ Subversion (.svn)

18
Установка зависимостей

19
Использование зависимостей

20
Использование зависимостей

21
init() и “import with blank identifier”

22
Публичные/приватные элементы
пакетов

В Go, публичные идентификаторы пакетов должны


начинаться с заглавной буквы, а приватные — со
строчной

23
Публичные/приватные элементы
пакетов

24
Структуры и
интерфейсы
Структуры

26
Методы и pointer/value receiver

27
Методы и pointer/value receiver

28
Методы и pointer/value receiver

29
Интерфейсы

● Интерфейс, глобально — набор требований и правил, которым сущность


удовлетворяет

● В терминах Go, интерфейс — множество методов, которые имеет тип

30
Интерфейсы: пример

31
Интерфейсы: пример

32
Интерфейсы: пример

33
stdlib
stdlib

Время для секции live coding-а!

35
Модули, которые мы разберём

bytes strings errors


Хелперы для работы с байтами Хелперы для работы со Утилиты для создания новых
([]byte) строками ошибок. Работа с типами
ошибок и error wrapping-ом

io net os
Пакет, содержащий Обёртки над Инструменты для работы с
абстракции над операциями низкоуровневыми файловой системой,
ввода/вывода и методы для примитивами для работы с окружением, процессами и
работы с ними. Интерфейсы сетью. [Link], [Link] прочими абстракциями
[Link], [Link], операционной системы
[Link], [Link]

36
Итераторы
Что не так с этим кодом?

38
Что не так с этим кодом?

Он проходит по массиву несколько раз

39
Дисклеймер

Это не всегда плохо!

40
Что такое итератор?

41
Что такое итератор?

42
Как пользоваться?

43
Что разобрали?

1. 2.
Обзор на систему пакетов. Инициализация Структуры и интерфейсы. Примеры паттернов,
проекта. Установка и управление зависимостями использующих интерфейсы. Сравнение ООП в стандартном
понимании с имеющимися в Go инструментами

3. 4.
Некоторые пакеты и основные концепции из stdlib. Новейшая фича из Go 1.23 — итераторы. Pull vs Push model.
Краткий обзор на bytes, strings, errors, io, net, os Использование итераторов в for-range выражениях

44

Вам также может понравиться