2016-01-22 45 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。