Я новичок в программировании. У меня есть два примера кода в Go и его цикл с использованием диапазона. Это первый пример:
Program A
type Test struct {
Text string
}
func main() {
tests := []Test{
Test{"Test1"},
Test{"Test2"},
}
var a Test
for _, test := range tests {
a = test
fmt.Println(a)
}
}
Это второй пример:
Program B
type Test struct {
Text string
}
func main() {
tests := []Test{
Test{"Test1"},
Test{"Test2"},
}
for _, test := range tests {
a := test
fmt.Println(a)
}
}
В первом примере «а» объявляется вне цикла, но во втором примере «а» объявляется внутри цикла. Как и в другом языке программирования, в чем разница между двумя примерами программ? Есть ли разница в оптимизации? Спасибо.