Go 指定reflect.ValueOf应返回的值

Go 指定reflect.ValueOf应返回的值,go,reflection,Go,Reflection,我有这样一个结构: type Time struct { Time time.Time Valid bool } 现在,如果我在初始化为的Time结构上调用reflect.ValueOf(),比如说Time.Now()和false,我将得到以下结果: {2018-06-09 15:03:17.4320396 false} 是否有办法更改结构(添加方法?重命名字段?),使reflect只返回time.time值,而不返回bool值? 有点像Valuer/Scanner界面对SQ

我有这样一个结构:

type Time struct {
    Time time.Time
    Valid bool
}
现在,如果我在初始化为的
Time
结构上调用
reflect.ValueOf()
,比如说
Time.Now()
false
,我将得到以下结果:

{2018-06-09 15:03:17.4320396 false}
是否有办法更改结构(添加方法?重命名字段?),使
reflect
只返回
time.time
值,而不返回
bool
值?
有点像Valuer/Scanner界面对SQL查询所做的那样,但是使用
reflect

否,这是不可能的。抱歉。

在Go中,您不能向先前声明的结构类型“添加方法”或“重命名字段”。不可能。你能更明确地说明你实际上想做什么吗?可能会提供一些您需要处理的输入代码和您想要生成的输出代码?此外,除非您更改std lib的源代码,否则您无法更改
reflect.ValueOf
的行为。它将始终重新运行作为唯一参数传递给它的值的
reflect.Value
表示。您不能以某种方式“指定”它应该返回它通常运行的内容以外的内容。那是不可能的。