修改go中Stringer接口中的一个默认值
Modify a default value in the Stringer interface in go
我在这里查看 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 ...
不修改库就无能为力。
如果可以选择修改库,您有以下几种可能性:
更改内部格式化函数的名称,以便导出并调用它。这需要做更多的工作,因为每次要打印 DataFrame
时都需要显式调用一个函数,但如果您想对库的工作方式进行最少的更改,这是一个合理的选择。
基本上将第 101 行和第 104 行的 print
更改为 Print
(我认为这些是该函数唯一出现的地方;如果不是,编译器会很乐意指出其他的 :P)
在 df.String
的定义中将参数更改为 df.print
。这确实是微不足道的,但它具有改变默认行为的效果,这可能是好事,也可能不是好事。
对于此选项,只需将第 101 行更改为 return df.print(true, false, true, true, 10, 70, "DataFrame")
或任何符合您需要的组合。
为您想要的每种打印格式添加一个新方法,并显式调用这些新方法。这比 #1 或 #2 更有效,但有些人可能更喜欢它。
就个人而言,我会选择 #1,但你的问题让 #2 听起来更像你想要的。
我在这里查看 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 ...
不修改库就无能为力。
如果可以选择修改库,您有以下几种可能性:
更改内部格式化函数的名称,以便导出并调用它。这需要做更多的工作,因为每次要打印
DataFrame
时都需要显式调用一个函数,但如果您想对库的工作方式进行最少的更改,这是一个合理的选择。基本上将第 101 行和第 104 行的
print
更改为Print
(我认为这些是该函数唯一出现的地方;如果不是,编译器会很乐意指出其他的 :P)在
df.String
的定义中将参数更改为df.print
。这确实是微不足道的,但它具有改变默认行为的效果,这可能是好事,也可能不是好事。对于此选项,只需将第 101 行更改为 return
df.print(true, false, true, true, 10, 70, "DataFrame")
或任何符合您需要的组合。为您想要的每种打印格式添加一个新方法,并显式调用这些新方法。这比 #1 或 #2 更有效,但有些人可能更喜欢它。
就个人而言,我会选择 #1,但你的问题让 #2 听起来更像你想要的。