gpt4 book ai didi

go - 冲突的全局和局部变量名

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

这是有问题的代码片段:

package main

import (
"fmt"
)

var a string = "hello"

func main() {
b := "world"

fmt.Println(a, b)

a := "bye"

fmt.Println(a, b)
}

输出:

hello world
bye world

我的问题是,如何解决“全局”和“局部”变量 a 之间的名称冲突?

更具体地说,我如何告诉 Go 使用哪个 a

最佳答案

我认为您的原始示例很好地说明了这种情况。就像大多数编程语言一样,范围很重要。

最接近使用的范围决定了 a 的值。因此,如果您在函数内重新声明 (:=) 变量,那么在该函数运行期间,您将拥有值 "bye"

如果您选择对两件事使用相同的名称,结果是内部名称将始终占主导地位。如果您需要这两个值,则以不同的方式命名变量。

关于go - 冲突的全局和局部变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47624326/

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