2016-01-22 72 views
0

我正试图用goterm快速对原型进行原型设计。我有一个结构中的用户对象列表。我想输出一个标题行(工作),然后迭代列表(工作),并为每个用户添加一行。但是,使用下面的代码,没有任何东西呈现给控制台。没有空行。没有。该程序刚刚返回。我已经得到了链接的例子,只使用标题行和数据行。通过迭代附加到表格无法正常工作。我确信我错过了一些非常基本的东西。帮助将不胜感激。我将继续黑客入侵。如何迭代列表并使用goterm包绘制表?

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() 
} 
+1

您将不得不提供更多信息或可重复的示例。如果您可以运行链接的示例,请将代码直接放在那里,看看会发生什么。尝试changin Fprintf的打印到标准输出,看看你得到什么。 – JimB

+0

够公平的。我会很快嘲笑一个。我在循环中使用了spew.Dump()来验证数据在那里。这绝对是一个问题(当然我的用法!)。 – n8gard

+2

@ n8gard:它适合我。 [如何创建一个最小,完整和可验证的示例。](http://stackoverflow.com/help/mcve)。 – peterSO

回答

0

一些更多的测试后,我发现,一切都在事实上,工作正常。我没有注意到goterm和Go的本地制表人之间的差异,因为前者更像是一个真正的终端程序并重新绘制屏幕。令人尴尬的是,期待滚动输出,我的终端窗口太小,无法输出50多行。在意识到这一点并发现我想要制表人的滚动输出后,我切换了,几分钟后,一切都按预期工作。如果你正在寻找一个类似互动的终端程序,goterm是一个很棒的软件包。这不是我想要的,虽然我已经因为它的格式化功能而被它吸引了。总之,RTFM。