Переменные функции в 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.