Практика на области видимости в Go
Дан следующий код:
package main
import "fmt"
func work() {
s := "in"
fmt.Println(s)
}
func main() {
work()
fmt.Println(s)
}
Скажите, соберется ли программа.
Дан следующий код:
n := 4
{
n := 1
fmt.Println(n)
}
fmt.Println(n)
Скажите, что выведется.
Дан следующий код:
for k := 0; k < 2; k++ {
fmt.Println(k)
}
fmt.Println(k)
Скажите, соберется ли программа.
Дан следующий код:
package main
import "fmt"
var count int
func step() {
count = count + 1
}
func main() {
step()
step()
fmt.Println(count)
}
Скажите, что выведется.
Даны переменные:
a := 2
Внутри блока без условия объявите a
заново со значением 9, выведите
его внутри блока. После блока выведите
a еще раз.
Дан следующий код:
package main
import "fmt"
func first() {
x := 1
}
func second() {
x := 2
fmt.Println(x)
}
func main() {
second()
}
Скажите, что выведется и видно ли x
из first в second.