TGViewer
Go tests Go tests @golangtests · 7.83K subscribers
Post #869 3.13K
❓ Что не так с этим кодом на Go? И чего вы ожидаете на выходе?


package main

func main() {
const (
iota = iota
Y
)
println(Y)
}



На первый взгляд - всё понятно. Но на самом деле это ловушка 😏


Вы переопределяете iota как обычную константу, равную самой себе (iota = iota). С этого момента iota перестаёт быть магической переменной, и счётчик сбрасывается.
Поэтому Y получает значение 0, а не 1 — как многие ожидают.

Вывод программы: 0

💡 Мораль: никогда не переназначайте iota внутри const, иначе потеряете её «магию».

Запустить код: https://go.dev/play/p/7xu1qRUcp2O
  • 👍 6
  • 😢 2
  • ❤ 1
  • 🔥 1
More from @golangtests
  1. Sep 26, 2026Nil-интерфейс в Go: почему err == nil выдаёт false? Nil-интерфейс в Go ломает даже опытных…
  2. Sep 23, 2026Задача по Go: `select` и побочные эффекты Что выведет программа? package main import "fmt"…
  3. Sep 23, 2026Не застревайте в прошлом — учитесь новым навыкам и ИИ Чтобы успевать за требованиями рынка…
  4. Sep 13, 2026👣 Задача на Go 1.27: concurrent job scheduler с generic methods Нужно реализовать библиот…
  5. Sep 13, 2026🔥 Хочешь расти в IT быстрее остальных? Перестань учиться в одиночку Можно годами смотреть…
  6. Sep 2, 2026👣 Go 1.27: почему две разные closure внезапно могут иметь одинаковый адрес функции? Что в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →