Переменная файла в Go
Имя вне функций видно всем функциям этого
файла. Такую переменную объявляют в начале
файла через var, до объявлений
функций. Из main и из других функций
можно читать и менять одно и то же значение.
Счетчик увеличивают из двух функций:
package main
import "fmt"
var count int
func addOne() {
count = count + 1
}
func showCount() {
fmt.Println(count)
}
func main() {
addOne()
addOne()
showCount()
}
На экране 2. Обе функции работают
с одной переменной count.
Локальное имя с тем же текстом внутри функции
не заменяет переменную файла, пока внутри
не появилось новое короткое объявление.
Сначала на экране 5 из локального
count, затем 1 из переменной
файла:
package main
import "fmt"
var count int
func resetLocal() {
count := 5
fmt.Println(count)
}
func main() {
count = 1
resetLocal()
fmt.Println(count)
}
Дан следующий код:
package main
import "fmt"
var total int
func bump() {
total = total + 3
}
func main() {
bump()
fmt.Println(total)
}
Скажите, что выведется.
Даны объявления:
var count int
func main() {
count := 2
fmt.Println(count)
}
Скажите, какое count печатает main:
локальное или из начала файла.
Объявите var count int в начале файла.
Напишите main, которая два раза
увеличивает count на 1 и
печатает результат.