如何迭代列表并使用 goterm 包绘制 table?

How to iterate over a list and draw a table with the goterm package?

我正在尝试使用 goterm 快速制作原型。我在结构中有一个用户列表 objects。我想输出一个 header 行(有效),然后遍历列表(有效)并为每个用户添加一行。但是,使用下面的代码,控制台不会呈现任何内容。没有空行。没有。该程序只是 returns。我已经获得了仅使用 header 行和数据行的链接示例。通过迭代附加到 table 是行不通的。我确定我错过了一些非常基本的东西。帮助将不胜感激。我会继续砍的。

func usersListOutputConsole(users *data.UserList) {
  userTable := tm.NewTable(0, 10, 5, ' ', 0)
  fmt.Fprintf(userTable, "ID\tName\tFull Name\tEmail\n") // the header row
  for _, user := range users.Data {
    fmt.Fprintf(userTable, "%d\t%s\t%s\t%s\n", user.ID,   user.Attributes["name"], user.Attributes["full_name"], user.Attributes["email"])
  }
  tm.Println(userTable)
  tm.Flush()
}

经过更多测试后,我发现实际上一切正常。我未能理解 goterm 和 Go 的本地 tabwriter 之间的区别的是,前者更像是一个实际的终端程序并重绘屏幕。令人尴尬的是,期待滚动输出,我的终端 window 对于要输出的 50 多行来说太小了。在意识到这一点并发现我想要 tabwriter 的滚动输出后,我切换了,几分钟后一切都按预期工作。如果您正在寻找类似交互式的终端程序,goterm 是一个很棒的软件包。这不是我想要的,尽管我因其格式化功能而被它吸引。简而言之,RTFM。