code: func call(v reflect.Value, method reflect.Method) reflect.Value {
      funcType := method.Type
      // Method must take no arguments, meaning as a func it has one argument (the receiver)
      if funcType.NumIn() != 1 {
          return reflect.Value{}
      }
      // Method must return a single value.
      if funcType.NumOut() == 0 {
          return reflect.Value{}
      }
      // Result will be the zeroth element of the returned slice.
      return method.Func.Call([]reflect.Value{v})[0]
  }
docs: // Invoke the method. If its signature is wrong, return nil.