🟡 Средний · 2 очк. Основы синтаксиса
Какой результат: fmt.Println(010)?
A 10
B 8
C Ошибка компиляции
D 2
Объяснение вопроса

Литерал 010 в Go - это восьмеричное число (префикс 0). В восьмеричной системе 10 означает 1*8 + 0 = 8 в десятичной. Поэтому fmt.Println(010) выведет 8.

Системы счисления в Go

fmt.Println(010)   // 8  (восьмеричное)
fmt.Println(0x10)  // 16 (шестнадцатеричное)
fmt.Println(0b10)  // 2  (двоичное, Go 1.13+)

Зачем восьмеричные числа

Исторически использовались для прав доступа в Unix (chmod 0755). В новом коде лучше явно указывать основание через strconv или комментарий, чтобы не путать с десятичными.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.