经过多次尝试, 我发现将Value方法的从属从指针类型改为值类型就可以解决这个问题.
此时我恍然大悟, 想起了之前的方法集的概念....指针类型拥有 值/指针 的方法
值类型只拥有值类型的方法
也就是说, go 在底层是使用值类型来调用的, 所以拿不到指针方法, 故而报错....于是我动手写了一段代码来模拟这段操作:
func main(){
// 这里模拟了当时设置的代码内容
typeOf := reflect.TypeOf(Content{})
reflectValue...使用值类型是无法对其字段进行修改的, 其修改通通是通过值复制进行, 并不会影响原始对象. 而且我右打了断点发现, 方法并不是没有调, 确实是调用了, 只不过因为从属与值而没有对原始对象造成影响....我回想了一下, 当时正确的检查步骤应该是:
在Scan方法内打断点, 查看是否调用了方法以及两次调用传的参数是否一致
当发现调用方法且参数一致时, 就直接到了最后一步并最终找到指针的问题
若没有调用方法或参数不一致时