tgoop.com/go_interview_lib/352
Create:
Last Update:
Last Update:
💬 В чем преимущество использования iota в Go?
iota — это предопределенное значение, которое можно использовать в объявлении const для создания последовательности связанных значений.
Использование приема с iota избавляет от необходимости вручную присваивать значения константам. Вместо этого можно записать такое определение:
type EventType byte
const (
_ = iota // iota == 0; игнорировать нулевое значение EventDelete
EventType = iota // iota == 1
EventPut // iota == 2; неявное присваивание
)
В объявлении константы iota представляет последовательно увеличивающиеся нетипизированные целочисленные значения, которые можно использовать для создания набора связанных констант. В начале каждого объявления const идентификатор iota получает нулевое значение и затем увеличивается с каждой операцией присваивания значения новой константе (независимо от использования ссылки на идентификатор iota).
Поскольку iota является нетипизированным числом, его можно использовать для присваивания типизированных значений без явного приведения типов, даже константе с типом float64:
const (
u = iota * 42 // iota == 0; u == 0 (нетипизированная целочисленная константа)
v float64 = iota * 42 // iota == 1; v == 42.0 (константа типа float64)
)
Ключевое слово iota допускает неявное перечисление, что делает тривиальным создание произвольно длинных наборов связанных констант, как это показано в следующем примере, где перечисляются различные единицы измерения размеров в байтах:
type ByteSize uint64
const (
_ = iota
KB ByteSize = 1 << (10 * iota) MB
GB
TB
PB
)
BY Библиотека Go для собеса | вопросы с собеседований
Share with your friend now:
tgoop.com/go_interview_lib/352