在go中修改Stringer界面中的默认值

时间:2017-10-15 01:34:44

标签: dataframe go interface gota

我在这里查看了gota数据框中的打印界面: https://github.com/kniren/gota/blob/master/dataframe/dataframe.go#L99

我看到默认值为shortCols = true,给定here

当我调用打印数据框时,如何在打印时使用shortCols = false覆盖此值以进行打印?

fmt.Println(fil)

例如,我想打印所有列,而不仅仅是前面的5列,如上所示:

[31x16] DataFrame

    valA   valB    valC    valD    valE        ...
 0:  578   8.30     491    7959    1.040000    ...
 1:  577   8.30     291    7975    2.050000    ...
 2:  466   16.7     179    6470    3.210000    ...
 3:  592   9.03     194    8212    4.040000    ...

1 个答案:

答案 0 :(得分:1)

无需修改库,您无能为力。

如果修改库是一个选项,您有几种可能性:

  1. 更改内部格式设置功能的名称,以便将其导出并调用。这是一项更多的工作,因为每次要打印DataFrame时都需要显式调用函数,但如果您想对库的工作方式进行最小的更改,这是一个合理的选择。

    基本上在第101和104行将print更改为Print(我认为这是该函数的唯一出现;如果不是,编译器会很乐意指出其他函数:P)

  2. df.print的定义中将参数更改为df.String。这是微不足道的,但它具有改变默认行为的效果,这可能是也可能不是一件好事。

    对于此选项,只需将第101行更改为df.print(true, false, true, true, 10, 70, "DataFrame")或任何符合您需求的组合。

  3. 为所需的每种打印格式添加新方法,并显式调用这些新方法。这比#1或#2更多,但有些人可能更喜欢它。

  4. 就个人而言,我会选择#1,但你的问题让#2听起来更像你想要的。