Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpBtIS 74 of 280 menu
◀ ▶

Счетчик констант и сдвиг в Go

Счетчик констант вместе со сдвигом дает степени двойки без ручных чисел. На первой строке блока пишут 1 << iota, а следующие имена без правой части повторяют то же выражение, но iota растет на каждой строке.

Так получают набор флагов, где каждое имя отвечает своему разряду. Подробнее про счетчик констант вы уже читали в соседнем разделе, здесь важна именно связка со сдвигом.

Объявим три константы и выведем значения:

const ( A = 1 << iota B C ) fmt.Println(A, B, C)

На экране 1, 2 и 4. У A счетчик 0, сдвиг дает 1. У B счетчик уже 1, сдвиг на один разряд дает 2. У C счетчик 2, итог 4.

Тот же прием с большим сдвигом на первой строке задает другую шкалу:

const ( Low = 1 << iota Mid High ) fmt.Printf("%b %b %b\n", Low, Mid, High)

Дан следующий код:

const ( P = 1 << iota Q R )

Запишите значения P, Q и R.

Даны имена Bit0, Bit1, Bit2. Составьте блок констант со значениями 1, 2, 4 через счетчик и сдвиг и выведите Bit1.

Дан следующий код:

const ( X = 1 << iota Y ) const ( Z = 1 << iota W )

Сравните Y и W: равны ли они.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить