1 回答
TA贡献1836条经验 获得超5个赞
由于 OrderSide 只是字符串的别名,因此从字符串转换为 OrderSide 的最简单方法是:anOrderSide = OrderSide(aString).
这是创建 OrderSides 或从字符串变量(Go Playground)获取它们的方法的更长示例:
type OrderSide string
func main() {
var anOrderSide OrderSide
anOrderSide = "def"
fmt.Println(anOrderSide)
fmt.Println(reflect.TypeOf(anOrderSide))
var aString string
var anotherOrderSide OrderSide
aString = "abc"
anotherOrderSide = OrderSide(aString)
fmt.Println(aString)
fmt.Println(reflect.TypeOf(aString))
fmt.Println(anotherOrderSide)
fmt.Println(reflect.TypeOf(anotherOrderSide))
}
这不会根据您的“枚举”检查您的字符串是否是有效的 OrderSide。您将需要验证字符串是否在其他地方的有效 OrderSides 列表中。一种简单的方法是创建一个映射,其中键是 OrderSides 的所有有效字符串值,值是空结构:
validOrderSides := make(map[string]struct{})
validOrderSides["BUY"] = struct{}{}
validOrderSides["SELL"] = struct{}{}
然后您可以检查您计划转换的字符串是否在地图中:_, ok := validOrderSides["BUY"].
或者,如果您愿意,您可以将其设为 amap[string]OrderSide并从字符串转换为 OrderSide 并同时进行验证:orderSide, isValid := stringToOrderSide["BUY"].
- 1 回答
- 0 关注
- 148 浏览
添加回答
举报
