Что выведет код Middle Типы и нулевые значения обновлено

Что выведет Go: затенение переменной в if

Вопрос

Что выведет программа? Go 1.23, в go.mod указано go 1.23. Каждую строку вывода пишите с новой строки.

package main

import "fmt"

func main() {
    x := 1
    if x := 2; x > 1 {
        x++
        fmt.Println(x)
    }
    fmt.Println(x)
}

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: 3, 1. if x := 2; ... объявляет новую переменную x, видимую только в if.

Что выведет

3
1

Разбор

if x := 2; ... объявляет новую переменную x, видимую только в if. Внутри она становится 3. Снаружи осталась исходная x = 1.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме