- наш обучающий телеграм канал для 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
208
43
2 months ago 00:08:17 1
Что такое Swift? Преимущества и недостатки языка программирования Swift