gpt4 book ai didi

go - 具有组合声明/赋值运算符的全局变量内联赋值和另一个未声明的变量失去范围?

转载 作者:IT老高 更新时间:2023-10-28 13:07:16 26 4
gpt4 key购买 nike

这个 Go 程序不会编译。它抛出错误 global_var declared and not used

package main

import "log"

var global_var int

func main() {

global_var, new_string := returnTwoVars()

log.Println("new_string: " + new_string)
}

func returnTwoVars() (int, string) {
return 1234, "woohoo"
}

func usesGlobalVar() int {
return global_var * 2
}

但是,当我通过在主函数中声明 new_string 并简单地使用 = 来消除使用 := 运算符的需要时,编译器在看到 global_var 被全局声明并在程序的其他地方使用时没有问题。我的直觉告诉我它应该知道 global_var 已经声明了

最佳答案

编译器不会提示 main 之外的 global_var。它只会提示您不使用的 main 中新创建的 global_var。您可以通过查看 go 提到的行号来检查。

您可以在没有人引用的任何函数之外尝试一个带有 global_var 的空程序:那里没有问题。当然,确实引用实际全局符号的usesGlobalVar函数与您在main中创建的符号无关。

关于go - 具有组合声明/赋值运算符的全局变量内联赋值和另一个未声明的变量失去范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553446/

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