我下面的目标是返回一片切片,以便稍后可以在主函数中对其进行迭代。
当前行为是,当我在fmt.PrintLn(test)
打印时,“测试”变量将显示切片中的每一行,但是在fmt.PrintLn(showParsed)
打印时,“已分析”变量为空。我该如何解决?
func lsCommand(outString string) []string {
scanner := bufio.NewScanner(strings.NewReader(outString))
var parsed []string
for scanner.Scan() {
s := scanner.Text()
ss := strings.Fields(s)
test := append(parsed, ss...)
fmt.Println(test)
}
return parsed
}
func main() {
ctx := context.Background()
ok, outString, errString := runBashCommandAndKillIfTooSlow(ctx, "ls", 2000*time.Millisecond)
if ok != true {
panic(errString)
}
showParsed := lsCommand(outString)
fmt.Println(showParsed)
}
答案 0 :(得分:1)
append
isn't guaranteed来修改传递给它的切片,因此SimpleDateFormat
不变。仅parsed
包含test
的元素。在每次迭代中使用返回值:
ss