第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

查找與字符串匹配的結(jié)構(gòu)字段類型

查找與字符串匹配的結(jié)構(gòu)字段類型

Go
波斯汪 2022-06-13 10:50:07
這是代碼:type OrderSide stringconst (    OrderSideSell OrderSide = "SELL"    OrderSideBuy  OrderSide = "BUY")type orderSides struct {    Sell OrderSide    Buy  OrderSide}var (    OrderSides orderSides = orderSides{        Sell: OrderSideSell,        Buy:  OrderSideBuy,    })現(xiàn)在,我希望能夠在 astring和 OrderSide(或者更好的是,一個OrderSides字段)之間進(jìn)行轉(zhuǎn)換。換句話說,給定一個string包含"SELL"or "BUY",我如何返回相應(yīng)的OrderSide常量(或OrderSides.<>字段)。需要明確的是,這里的目標(biāo)是動態(tài)地執(zhí)行此操作,這樣我就不需要在添加額外 OrderSide 字段時添加案例的巨大開關(guān)。
查看完整描述

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"].


查看完整回答
反對 回復(fù) 2022-06-13
  • 1 回答
  • 0 關(guān)注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號