1 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個贊
由于 OrderSide 只是字符串的別名,因此從字符串轉(zhuǎn)換為 OrderSide 的最簡單方法是:anOrderSide = OrderSide(aString).
這是創(chuàng)建 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))
}
這不會根據(jù)您的“枚舉”檢查您的字符串是否是有效的 OrderSide。您將需要驗(yàn)證字符串是否在其他地方的有效 OrderSides 列表中。一種簡單的方法是創(chuàng)建一個映射,其中鍵是 OrderSides 的所有有效字符串值,值是空結(jié)構(gòu):
validOrderSides := make(map[string]struct{})
validOrderSides["BUY"] = struct{}{}
validOrderSides["SELL"] = struct{}{}
然后您可以檢查您計劃轉(zhuǎn)換的字符串是否在地圖中:_, ok := validOrderSides["BUY"].
或者,如果您愿意,您可以將其設(shè)為 amap[string]OrderSide并從字符串轉(zhuǎn)換為 OrderSide 并同時進(jìn)行驗(yàn)證:orderSide, isValid := stringToOrderSide["BUY"].
- 1 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報