日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

用了Go匿名結構體,搬磚效率更高,產量更足了

來源: 責編: 時間:2023-08-14 22:00:59 417觀看
導讀今天給大家分享一個使用匿名結構體,提升Go編程效率的小技巧,沒什么技術深度,屬于在日常寫代碼過程中積累下來的一個提升自己編程效率的小經驗。這個技巧之所以提效率主要體現在兩方面:減少一些不會復用的類型定義節省糾結

今天給大家分享一個使用匿名結構體,提升Go編程效率的小技巧,沒什么技術深度,屬于在日常寫代碼過程中積累下來的一個提升自己編程效率的小經驗。EbT28資訊網——每日最新資訊28at.com

這個技巧之所以提效率主要體現在兩方面:EbT28資訊網——每日最新資訊28at.com

  • 減少一些不會復用的類型定義
  • 節省糾結該給類型起什么名字的時間

尤其第二項,通過匿名結構體這個名字就能體現出來,它本身就沒有類型名,這能節省不少想名字的時間。再一個也能減少起錯名字給其他人帶來的誤解,畢竟并不是所有人編程時都會按照英文的詞法做命名的。EbT28資訊網——每日最新資訊28at.com

下面我先從普通結構體說起,帶大家看看什么情形下用匿名結構體會帶來編碼效率的提升。EbT28資訊網——每日最新資訊28at.com

具名結構體

具名結構體就是平時用的普通結構體。EbT28資訊網——每日最新資訊28at.com

結構體大家都知道,用于把一組字段組織在一起,來在Go語言里抽象表達現實世界的事物,類似“藍圖”一樣。EbT28資訊網——每日最新資訊28at.com

比如說定義一個名字為Car的結構體在程序里表示“小汽車”EbT28資訊網——每日最新資訊28at.com

// 定義結構體類型'car'type car struct {    make    string    model   string    mileage int}

用到這個結構體的地方通過其名字引用其即可,比如創建上面定義的結構體的實例EbT28資訊網——每日最新資訊28at.com

// 創建car 的實例newCar := car{    make:    "Ford",    model:   "taurus",    mileage: 200000,}

匿名結構體

匿名結構體顧名思義就是沒有名字的結構體,通常只用于在代碼中僅使用一次的結構類型,比如EbT28資訊網——每日最新資訊28at.com

func showMyCar() {    newCar := struct {        make    string        model   string        mileage int    }{        make:    "Ford",        model:   "Taurus",        mileage: 200000,    }    fmt.Printlb(newCar.mode)}

上面這個函數中聲明的匿名結構體賦值給了函數中的變量,所以只能在函數中使用。EbT28資訊網——每日最新資訊28at.com

如果一個結構體初始化后只被使用一次,那么使用匿名結構體就會很方便,不用在程序的package中定義太多的結構體類型,比如在解析接口的響應到結構體后,就可以使用匿名結構體EbT28資訊網——每日最新資訊28at.com

用于解析接口響應

func createCarHandler(w http.ResponseWriter, req *http.Request) {    defer req.Body.Close()    decoder := json.NewDecoder(req.Body)    newCar := struct {        Make    string `json:"make"`        Model   string `json:"model"`        Mileage int    `json:"mileage"`    }{}    err := decoder.Decode(&newCar)    if err != nil {        log.Println(err)        return    }    ......    return}

類似上面這種代碼一般在控制層寫,可以通過匿名結構體實例解析到請求后再去創建對應的DTO或者領域對象供服務層或者領域層使用。EbT28資訊網——每日最新資訊28at.com

有人會問為什么不直接把API的響應解析到DTO對象里,這里說一下,匿名結構體的使用場景是在覺得定一個Struct 不值得、不方便的情況下才用的。 比如程序拿到接口響應后需要按業務規則加工下才能創建DTO實例這種情況,就很適合用匿名結構體先解析響應。EbT28資訊網——每日最新資訊28at.com

比用map更健壯

這里再說一點使用匿名結構體的好處。EbT28資訊網——每日最新資訊28at.com

使用匿名解析接口響應要比把響應解析到map[string]interface{}類型的變量里要好很多,json數據解析到匿名結構體的時候在解析的過程中會進行類型檢查,會更安全。使用的時候直接通過s.FieldName訪問字段也比map訪問起來更方便和直觀。EbT28資訊網——每日最新資訊28at.com

用于定義項目約定的公共字段

除了上面這種結構體初始化后只使用一次的情況,在項目中定義各個接口的返回或者是DTO時,有的公共字段使用匿名結構體聲明類型也很方便。EbT28資訊網——每日最新資訊28at.com

一般在啟動項目的時候我們都會約定項目提供的接口的響應值結構,比如響應里必須包含Code、Msg、Data三個字段,每個接口會再細分定義返回的Data的結構,這個時候用匿名結構題能節省一部分編碼效率。EbT28資訊網——每日最新資訊28at.com

比如下面這個Reponse的結構體類型的定義EbT28資訊網——每日最新資訊28at.com

type UserCouponResponse struct { Code int64  `json:"code"` Msg  string `json:"message"` Data []*struct {  CouponId           int    `json:"couponId"`  ProdCode           string `json:"prodCode"`  UserId             int64  `json:"userId"`  CouponStatus       int    `json:"couponStatus"`  DiscountPercentage int    `json:"discount"` } `json:"data"`}

就省的先去定義一個UserCoupon類型EbT28資訊網——每日最新資訊28at.com

type UserCoupon struct {    CouponId           int    `json:"couponId"`    ProdCode           string `json:"prodCode"`    UserId             int64  `json:"userId"`    CouponStatus       int    `json:"couponStatus"`    DiscountPercentage int    `json:"discount"`}

再在Response聲明里使用定義的UserCoupon了EbT28資訊網——每日最新資訊28at.com

type UserCouponResponse struct {    Code int64  `json:"code"`    Msg  string `json:"message"`    Data []*UserCoupon `json:"data"`}

當然如果UserCoupon是你的項目其他地方也會用到的類型,那么先聲明,順帶在Response結構體里也使用是沒問題的,只要會多次用到的類型都建議聲明成正常的結構體類型。EbT28資訊網——每日最新資訊28at.com

還是那句話匿名結構體只在你覺得"這還要定義個類型?”時候使用,用好的確實能提高點代碼生產效率。EbT28資訊網——每日最新資訊28at.com

總結

本次的分享就到這里了,內容比較簡單,記住這個口訣:匿名結構體只在你寫代碼時覺得這還要定義個類型,感覺沒必要的時候使用,采納這個技巧,時間長了還是能看到一些自己效率的提高的。EbT28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-5711-0.html用了Go匿名結構體,搬磚效率更高,產量更足了

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: gRPC?vs?REST:創建API的方法比較

下一篇: 讓我們一起聊一聊反射

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
国产精品毛片在线| 欧美黄在线观看| 亚洲一线二线三线久久久| 中日韩视频在线观看| 亚洲一区二区网站| 久久精品亚洲热| 欧美国产高清| 国产精品久久久久久久一区探花| 国产乱码精品一区二区三区av| 韩日视频一区| 亚洲美女中出| 欧美中文字幕不卡| 欧美国产在线电影| 国产精品美女久久久| 好吊妞**欧美| 9久re热视频在线精品| 欧美一区精品| 欧美韩国在线| 国产视频在线观看一区二区| 亚洲国产精品女人久久久| 亚洲一区二区免费看| 久久视频在线免费观看| 欧美日韩亚洲一区二区三区在线| 国产偷国产偷亚洲高清97cao| 亚洲国产欧美另类丝袜| 亚洲欧美日韩综合一区| 女人天堂亚洲aⅴ在线观看| 国产精品美女一区二区| 亚洲国产成人久久| 午夜国产精品视频| 欧美成人伊人久久综合网| 国产精品网站一区| 亚洲乱码久久| 久久久噜噜噜久久中文字免| 欧美视频日韩视频| 亚洲福利专区| 欧美在线视频在线播放完整版免费观看 | 国产精品国产三级国产专区53 | 久久精品国产亚洲高清剧情介绍| 欧美成人免费全部观看天天性色| 国产欧美一区二区色老头| 日韩视频精品在线| 久久伊人精品天天| 国产伦精品一区二区三区视频黑人| 最新中文字幕一区二区三区| 久久av在线| 国产精品久久久久9999| 亚洲精品一级| 久久综合福利| 国产亚洲精品v| 亚洲视频在线观看三级| 欧美高清日韩| 激情久久中文字幕| 欧美一级精品大片| 国产精品久久一卡二卡| 亚洲麻豆av| 欧美成人免费网| 1204国产成人精品视频| 久久高清免费观看| 国产精品夜夜夜| 亚洲午夜性刺激影院| 欧美日韩国产色综合一二三四| 在线观看成人小视频| 久久成人18免费网站| 国产精品亚洲激情| 亚洲一区视频在线| 欧美三级乱码| 日韩亚洲欧美一区二区三区| 美日韩精品免费观看视频| 国产一区二区三区四区hd| 午夜亚洲视频| 国产精品久久久久久久久果冻传媒| 日韩午夜激情电影| 欧美成人精品h版在线观看| 一区二区三区无毛| 久久久久久夜精品精品免费| 国产一区二区三区日韩| 久久国产一区二区| 国产一区清纯| 久久久999精品| 国产字幕视频一区二区| 久久九九热免费视频| 国产一区二区三区不卡在线观看| 欧美在线你懂的| 国产一区自拍视频| 久久一二三国产| 一区在线免费| 免费在线成人| 亚洲全黄一级网站| 欧美日本成人| 99热免费精品在线观看| 欧美视频免费在线| 亚洲免费在线观看视频| 国产精品欧美日韩一区二区| 亚洲欧美日韩国产| 国产视频综合在线| 久久久综合香蕉尹人综合网| 一区一区视频| 欧美电影免费观看网站| 日韩一级精品| 国产精品国产成人国产三级| 亚洲欧美另类久久久精品2019| 国产视频欧美| 久久久一区二区三区| 亚洲国产成人av| 欧美日韩mp4| 亚洲一区中文| 国产最新精品精品你懂的| 狂野欧美激情性xxxx欧美| 亚洲欧洲一区二区在线播放| 欧美日韩亚洲另类| 午夜精品一区二区三区电影天堂 | 亚洲黄色一区二区三区| 欧美久久久久免费| 亚洲一区二区三区四区在线观看| 国产欧美日本一区二区三区| 另类专区欧美制服同性| 99视频在线观看一区三区| 国产精品丝袜xxxxxxx| 久久久久久久尹人综合网亚洲| 亚洲高清久久| 欧美日精品一区视频| 欧美在线高清视频| 亚洲国产精品一区| 欧美丝袜一区二区三区| 久久成人国产精品| 亚洲精品偷拍| 国产欧美日韩伦理| 欧美阿v一级看视频| 亚洲一区二区三区在线播放| 国产一区二区在线观看免费| 欧美精品三级| 欧美在线视频观看| 亚洲精品欧美一区二区三区| 国产精品一区二区久久久| 久久亚洲不卡| 亚洲夜间福利| 亚洲国产高清一区| 国产精品毛片大码女人| 开心色5月久久精品| 一区二区三区日韩在线观看| 国模套图日韩精品一区二区| 欧美伦理91| 久久成人免费日本黄色| 99国内精品久久| 黄色成人91| 国产精品美女一区二区在线观看| 欧美xart系列高清| 香蕉久久一区二区不卡无毒影院| 亚洲国产高清在线观看视频| 国产毛片一区| 欧美日韩另类一区| 久久天天狠狠| 亚洲欧美日韩一区二区在线 | 国内久久婷婷综合| 欧美午夜精品久久久久久孕妇 | 欧美高清在线观看| 香蕉av777xxx色综合一区| 亚洲精品社区| 激情欧美一区二区| 国产精品亚洲综合久久| 欧美国内亚洲| 久久夜精品va视频免费观看| 午夜精品久久久久久99热软件| 亚洲精品韩国| 一区二区在线观看视频在线观看| 国产精品亚洲网站| 欧美日韩精品中文字幕| 美女视频一区免费观看| 久久动漫亚洲| 亚洲欧美日韩国产| 亚洲视频你懂的| 亚洲精品在线免费| 在线成人激情| 国语自产在线不卡| 国产精品中文在线| 欧美视频在线观看视频极品| 欧美成人激情视频| 久久久久一本一区二区青青蜜月| 亚洲欧美日韩国产一区二区| 最新日韩精品| 在线观看欧美视频| 国产一区欧美日韩| 国产精品影音先锋| 国产精品第一页第二页第三页| 欧美精品福利在线| 欧美大片91| 女人天堂亚洲aⅴ在线观看| 噜噜爱69成人精品| 久久久激情视频| 久久九九99| 久久精品卡一| 欧美在线首页| 欧美怡红院视频| 亚洲欧美激情一区| 亚洲视屏一区| 亚洲调教视频在线观看| 一区二区三区视频在线播放| 99热精品在线| 一本一本久久a久久精品综合麻豆| 亚洲日本欧美天堂| 亚洲美女视频| 99精品国产在热久久| av成人福利|