fieldtype
s 提供实现?,喜欢…,欢迎任何提示。,发生该错误的原因是涉及类型参数的操作(包括赋值和返回)必须对其类型集中的所有类型都有效。如果是
string | int
,没有通用的操作来从字符串初始化它们的值。,但是您仍然有几个选择:,您在类型开关中使用通用类型 t
的字段,并临时将具体类型的值设置到 接口{}
/any
中。然后将接口键入断言回 t
以返回它。请注意,此断言未经检查,因此如果由于某种原因 ret
持有不属于 t
类型集中的内容,则可能会出现恐慌。当然你可以用逗号-ok检查它,但它仍然是一个运行时断言:,您可以进一步简化上面的代码并摆脱空接口。在本例中,您获取 t
类型变量的地址并打开指针类型。 这在编译时进行了完全类型检查:,请注意,在这两种情况下,您都必须将 t
值转换为 interface{}
/any
才能在类型开关中使用它。您无法直接在 t
上进行类型切换。,带有模拟 os.lookupenv
地图的游乐场:https://www.php.cn/link/498bce62bd2bda584246701fa0166482,