You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言同包同目录跨文件读变量报错:undefined: My_str

Go语言同包变量未定义问题排查与解决

问题原因

File B的变量声明存在语法错误:

  • 全局变量的声明和赋值不能拆分为两行独立语句(这种写法会被编译器判定为新的未声明变量)
  • 第二行的My_str = "hi"存在缩进错误,进一步导致编译器无法识别该语句是对上方已声明变量的赋值

修复方案

有两种正确的写法可以解决这个问题:

方案1:合并变量声明与赋值

修改File B为:

package main

// 完整声明+赋值,或简化为 var My_str = "hi"(Go会自动推导类型)
var My_str string = "hi"

方案2:使用init函数初始化全局变量

如果需要更复杂的初始化逻辑,可以借助init函数:

package main

var My_str string

func init() {
    My_str = "hi"
}

修改完成后,执行go run .命令,程序将正常输出hi。

内容的提问来源于stack exchange,提问作者Reza Motaee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 04:50:25