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

Переменные функции в Go

Две функции могут иметь одинаковые имена, и это будут разные переменные. Каждая функция получает свой набор локальных имен. Имя n в одной функции не связано с n в другой, даже если файлы совпадают и тип тот же.

Две функции печатают свои значения под одним именем:

package main import "fmt" func showFirst() { n := 1 fmt.Println(n) } func showSecond() { n := 10 fmt.Println(n) } func main() { showFirst() showSecond() }

На экране две строки: 1 и 10. Изменение n внутри showSecond не трогает n в showFirst.

Параметры тоже локальны для своей функции. Параметр msg в одном объявлении не мешает такому же имени в другом:

package main import "fmt" func greet(msg string) { fmt.Println(msg) } func echo(msg string) { fmt.Println(msg) } func main() { greet("hi") echo("go") }

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

package main import "fmt" func left() { s := "a" fmt.Println(s) } func right() { s := "b" fmt.Println(s) } func main() { left() right() }

Скажите, что выведется.

Даны функции:

func one() { k := 3 } func two() { fmt.Println(k) }

Скажите, соберется ли программа с таким вызовом two из main.

Напишите две функции printA и printB. В каждой объявите value через := со своим числом и выведите его. Вызовите обе из main.

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