对潜在变量范围(可能是指针)的困惑?不确定

时间:2017-12-08 14:06:00

标签: go

我尝试寻找答案(我觉得这是一个基本概念),但我找不到与我直接相关的答案......所以这是我的帖子。

我目前正在解析我的服务器上的日志文件,并构建一个脚本来实现某些过程的自动化(学习新技能,让我的工作更轻松等等)。我构建了一个简化的解析器来细分每一行。我省略了相当多的代码,因为它不相关。

这是我的功能:

password

以下是样本结果:

Sample result from a test file.

正如您所看到的那样,当我打印出" parsedDataSet"变量在不同的部分它拥有不同的值。在" ------"之上换行符是我想要的值,下面是我在" for"之外显示的值。环。我倾向于变量范围,因为它在"中为"分配值。循环,并没有把它带到那之外。但是,我正在访问一个全局变量进行赋值,因此我的假设是它将贯穿全局范围。

我是Go的新手所以我仍然在学习相当多的语言 - 到目前为止一直很喜欢它。我无法绕过这个问题。我用Python(我现在的语言)重新写了这个,并且它以类似的方式工作得非常好。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

切片分配不执行复制,它只是一个指针。这意味着每个parsedDataSet条目都是相同的切片。

最简单的解决方案是让你在for循环中移动var tempArray []string

有关切片以及重新切片如何工作的详细信息,您应该read up on the details