为了账号安全,请及时绑定邮箱和手机立即绑定

Go 如何检查产品类型

Go 如何检查产品类型

Go
DIEA 2021-09-09 15:05:15
我有Product带字段的模型Type。像这样的东西:type ProductType stringvar (    PtRouteTransportation    ProductType = "ProductRT"    PtOnDemandTransportation ProductType = "ProductDT"    PtExcursion              ProductType = "ProductEX"    PtTicket                 ProductType = "ProductTK"    PtQuote                  ProductType = "ProductQT"    PtGood                   ProductType = "ProductGD")type Product struct {    ...    Type ProductType    ...}在Create函数中,我有type表单参数:type := req.Form.Get("type")问题:如何检查是否type有效?最简单的方法是:if type != PtRouteTransportation && type != PtOnDemandTransportation && ...但是如果Product有 100 种类型,我该怎么办?如何以这种go方式做到这一点?
查看完整描述

2 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

真正最简单的是使用映射,不像常量那么快,但是如果您必须针对大集合进行测试,这是最方便的方法。


此外,由于它是预先分配的,因此它是线程安全的,因此您不必担心锁定,除非您在运行时添加它。


var (

    ptTypes = map[string]struct{}{

        "ProductRT": {},

        "ProductDT": {},

        "ProductEX": {},

        "ProductTK": {},

        "ProductQT": {},

        "ProductGD": {},

    }


)


func validType(t string) (ok bool) {

    _, ok = ptTypes[t]

    return

}


查看完整回答
反对 回复 2021-09-09
  • 2 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信