gpt4 book ai didi

Go 在循环外声明变量 vs 在循环内声明变量

转载 作者:IT王子 更新时间:2023-10-29 02:25:27 25 4
gpt4 key购买 nike

我是编程新手。我在 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)
}
}

在第一个示例中,'a' 是在循环外声明的,但在第二个示例中,'a' 是在循环内声明的。就像在其他编程语言中一样,两个示例程序之间有什么区别?有什么优化差异吗?谢谢。

最佳答案

变量有不同scopes .通常最佳做法是使用尽可能小的范围,如第二个示例所示。

应该没有优化差异。

关于Go 在循环外声明变量 vs 在循环内声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54321676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com