在 Go 结构体中存储 String 和 Int 值
在 Go 中,不可能将 string 和 int 值直接存储在结构体中单个结构体字段。这是由于该语言的强类型系统,它要求变量具有特定的、定义良好的类型。
可能的解决方案
要解决此限制,您可以几个选项:
Go 1.18 及更高版本中的接口实现
使用接口,您可以创建可以同时保存字符串和整数值的类型。这是一个示例:
type Input interface { IsValid() bool Value() interface{} } type TestCaseBool struct { input bool isValid bool } func (tc TestCaseBool) IsValid() bool { return tc.isValid } func (tc TestCaseBool) Value() interface{} { return tc.input }
您现在可以使用 TestCaseBool 结构来保存布尔值或空接口。
注意:此解决方案需要 Go 1.18或更高级别的工作。
以上是如何在 Go 结构中同时存储 String 和 Int 值?的详细内容。更多信息请关注PHP中文网其他相关文章!