我正在尝试更改CLI插件的子命令的输出,但是正在努力使其正常工作。目前,它显示了一个难看的列表。我想将其格式化为易于阅读的漂亮表。没有桌子,它工作正常……看起来很丑。在表中添加内容时会说“ ....用作值”将其破坏。
我尝试将行声明为没有运气的字符串数组。我错过了什么,不确定什么。
for {
select {
case <-ticker.C:
stats, _ := ccclient.AppStats(app.Metadata.GUID)
table := ui.Table([]string{"Sample Time", "Instance ID", "CPU %", "Memory (MB)", "Disk (MB)", "Cell IP:port"})
for key, value := range stats {
tickerObject := []string{time.Now().Format(time.RFC3339), key}
//ui.Say(fmt.Sprintf("%s, %s, %s, %s, %s, %s", time.Now().Format(time.RFC3339), key, fmt.Sprintf("%f", value.Stats.Usage.CPU), fmt.Sprintf("%f", (value.Stats.Usage.Mem/1024/1024)), fmt.Sprintf("%f", (value.Stats.Usage.Disk/1024/1024)), value.Stats.Host+":"+strconv.Itoa(value.Stats.Port)))}
table.Add(tickerObject)
table.Print()
}
case <-quit:
ticker.Stop()
}
}
我希望格式化的输出看起来更整洁,相反,我会得到-
cannot use tickerObject (type []string) as type string in argument to table.Add
当前输出(使用注释掉的ui.Say行),未对齐:
在空间函数开发测试中收集应用程序结构任务的统计信息 Ctrl-C停止收集统计信息
采样时间,实例号,cpu%,内存(MB),磁盘(MB),单元ip:port 2019-06-14T23:33:42-05:00,0,0.004659,38.492188,205.914062, 169.61.179.187:61440 2019-06-14T23:33:47-05:00,0,0.004659,38.492188,205.914062,169.61.179.187:61440 2019-06-14T23:33:52-05:00,0,0.004659, 38.492188,205.914062,169.61.179.187:61440 2019-06-14T23:33:57-05:00,0,0.006533,38.492188,205.914062, 169.61.179.187:61440
我不认为表是问题,我想我只是在存储数据的方式上缺少了一个非常简单的东西。我认为表只能拉出显示字符串(或者至少我在内部文档中找到的所有示例都只调用字符串)。
答案 0 :(得分:0)
感谢彼得,使用tabWriter解决了