【问题标题】:Golang, variable with type from stringGolang,变量类型来自字符串
【发布时间】:2014-10-31 18:26:40
【问题描述】:

是否可以使用字符串类型创建变量?

示例:
我有两种类型:

type FirstType struct {
    ...
}

type SecondType struct {
    ...
}

// also I have a string variable
var1 := "Second"

我想创建类型为 - String value + "Type" 的变量:

var variable = []var1+"Type" // slice of "SecondType"

预期结果是这样的:

var variable = []SecondType

谢谢!

【问题讨论】:

    标签: go


    【解决方案1】:

    这是不可能的。 Go 不提供创建静态未知类型变量的功能。变量的类型始终是静态已知的。考虑改用接口。

    【讨论】:

    • 假设你有一个接口 IEvent,它有很多不同的实现。您可以将它们序列化为具有属性 Type 和 Data 的同一个对象,但是如何在没有很长的 switch case 操作的情况下反序列化它们?
    • @GioGio 尽量避免这种情况。一种解决方案是在每个实现实现的接口中都有一个Deserialize()方法,以根据其具体类型反序列化IEvent
    • 我很困惑,你是说IEvent接口上的Deserialize()?如果我们还没有 IEvent 的实例,如何调用它?我可能遗漏了一些重要的细节
    • @GioGio 对不起,我误会了。对于反序列化,您可以使用解码函数的数组或哈希映射而不是 switch 语句。
    猜你喜欢
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多