可选地使用 reflect.MethodByName()
作者: vincentbernat创建于 2025年11月21日更新于 2026年3月14日
嘿! 使用 reflect.Method() 或 reflect.MethodByName() 与非常量参数时,对于公共函数,死代码消除功能被禁用。这使得最终二进制文件比预期的大。例如,请参阅 https://GitHub.com/Kubernetes/Kubernetes/issues/132216 来了解有关此主题的相关工作。`validatefn` 验证器使用了此种方法。是否可以将其隐藏在构建约束后面? 例如,`validator_no_reflectmethod`?这将防止指定自定义验证器(静态验证器仍然可以使用)。
内容来源: go-playground/validator