我想通过使用反射来获取字段名称的名称。我将字符串作为指针传递,然后要在函数中检索变量名称。
type FooBar struct {
foo *string
}
func bar(s *string) {
var name string
// TODO: Get name of the field that s is pointing to!
fmt.Println("Expected string is foo: " + name)
}
func main() {
f := Foo{"bar"}
bar(f.s)
}
我尝试使用来获取s的值
val := reflect.ValueOf(s)
然后我不知道该怎么获得变量名。
我应该提及的是,我的结构中有多个字段,并且我事先不知道哪个字段有问题。
感谢您的帮助。谢谢
答案 0 :(得分:2)
您不能这样做。
编写# PARENT:
class AddImages(LoginRequiredMixin, View):
template_name = images/add_images.html
# HERE I GET THE CURRENT URL:
def next_url(self):
next_url = "?next={0}".format(self.request.path)
print("NEXT URL:" + str(next_url))
return next_url
# AND I USE IT HERE:
def post(self, request, **kwargs):
# ...
next_url = self.next_url()
data = {'next_url' : next_url }
return JsonResponse(data)
# CHILD:
class EditImages(AddImages):
"""
Inherits from ImagesView. overwrites template and next_url
"""
template_name = "images/edit_images.html"
def next_url(self):
next_url = "?next={0}".format(self.request.path)
print("CHILD URL2:" + str(next_url))
return next_url
时,所拥有的只是一个指向字符串的指针。某些结构中的某些字段恰好具有此值的信息完全丢失/不可用。
在这里,我不建议不安全的软件包:您必须重新设计。