- наш обучающий телеграм канал для Golang разработчиков
- папка с самыми полезными ресурсами для Golang разработчиков
Простой пример iota
Ключевое слово iota представляет собой последовательные целочисленные константы 0, 1, 2,…
Оно обнуляется каждый раз, когда const появляется в исходном коде
И увеличивается после каждой спецификации const.
const (
C0 = iota
C1 = iota
C2 = iota
)
(C0, C1, C2) // “0 1 2“
Можно упростить до:
const (
C0 = iota
C1
C2
)
Тут полагаемся на то, что выражения неявно повторяются в объявлении const в скобках — это указывает на повторение предыдущего выражения и его тип.
Начать с единицы
Чтобы начать список констант с 1 вместо 0, можно использовать iota в арифметическом выражении.
const (
C1 = iota 1
C2
C3
)
(C1, C2, C3) // “1 2 3“
Пропустить значение
Можно использовать пустой идентификатор, чтобы пропустить значение в списке констант.
const (
C1 = iota 1
_
C3
C4
)
(C1, C3, C4) // “1 3 4“
Полный тип enum со строками [best practice]
Вот идиоматический способ реализации перечисляемого типа:
создаем новый целочисленный тип,
перечисляем его значения с использованием iota,
реализуем для типа функцию String.
type Direction int
const (
North Direction = iota
East
South
West
)
func (d Direction) String() string {
return [...]string{“North“, “East“, “South“, “West“}[d]
}
В действии:
var d Direction = North
(d)
switch d {
case North:
(“ goes up.“)
case South:
(“ goes down.“)
default:
(“ stays put.“)
}
// Output: North goes up.
Соглашение об именовании
По стандартному соглашению об именовании, необходимо использовать смешанный caps и для для констант. Например, экспортируемую константу будет правильным назвать NorthWest, а не NORTH_WEST.
201 view
174
30
17 minutes ago 00:02:50 9
Video by Курсы ГО города Кургана
21 minute ago 00:11:17 1
Laço com Fita Estampada - Laço Candy 🎀
22 minutes ago 00:54:59 5
[Вера Дроздова] LTE. Лекция 2. Введение в LTE-Advanced. LTE-A Pro. Carrier aggregation. Coordinated multipoint. MIMO
30 minutes ago 00:18:47 1
ТРЕШ-ПСИХОЛОГИ из ТикТока
35 minutes ago 00:28:25 1
Удаленная сцена из ДЭДПУЛА и РОСОМАХИ // Новый МИР ЮРСКОГО ПЕРИОДА 4: ПЕРЕРОЖДЕНИЕ | НОВОСТИ 249
44 minutes ago 00:21:59 1
LAMEL TO GO _ НОВИНКИ _ Впервые кайфую от LAMEL_ ЧТОООООО_🤪
1 hour ago 00:00:41 3
Американская и не только техника, брошеная боевиками в Курской области
1 hour ago 04:09:10 1
Гений для гениев - ФУГА TV
1 hour ago 00:02:12 1
Курс: “Оценивание и психолого-педагогическая диагностика участников образ-го процесса“. (Промовидео)
1 hour ago 01:11:19 1
МЫ ДО ПОСЛЕДНЕГО НЕ ВЕРИЛИ, ЧТО ЭТО СДЕЛАЛ ОН. Надя погибла, а Белла делась неизвестно куда.
2 hours ago 00:26:07 1
СИНТИ-ПОП В СССР: тёмная музыка 80х (Альянс, Технология, Пугачева и другие)
3 hours ago 01:07:38 1
XXI век: тотальный рынок симулякров (А.В. Бузгалин)
3 hours ago 00:03:15 1
Fame on Fire - “Chains (The Tower)“ feat. SiM (Official Music Video)
3 hours ago 00:19:28 1
Мармок Предатель (LOCKDOWN Protocol)
4 hours ago 00:44:22 1
ВСЕ песни мира на ОДНИХ АККОРДАХ! Золотая секвенция
4 hours ago 00:01:53 1
Как заработать на дому отзывы ⭐ В каких сферах можно работать
5 hours ago 00:20:31 1
ЛУЧШИЙ МЕТОД ЛЕЧЕНИЯ КОЛЕНЕЙ ИЗ БУДУЩЕГО! Лучшие упражнения для восстановления коленного сустава
7 hours ago 00:58:40 1
КТО написал лучшие ХИТЫ 80-х? Джорджо Мородер
7 hours ago 00:28:43 18
THE BIG BANG THEORY - MULHERES CARNÍVORAS
8 hours ago 00:01:53 1
👀 ПОДРАБОТКА В МОСКВЕ ДЛЯ ГРАЖДАН СНГ ЕЖЕДНЕВНАЯ ОПЛАТА ✔
8 hours ago 01:10:05 1
Парадокс информации, управляющий миром
8 hours ago 00:01:53 1
👍 Дополнительный заработок в астане ❌ Игры за которые платят деньги без обмана
8 hours ago 00:10:07 1
Зачем в школах запретили каллиграфию? Почему нужно срочно вернуть чистописание в современные буквари