国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

當(dāng)前位置:首頁 > 科技  > 軟件

用了Go匿名結(jié)構(gòu)體,搬磚效率更高,產(chǎn)量更足了

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

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

這個技巧之所以提效率主要體現(xiàn)在兩方面:RYc28資訊網(wǎng)——每日最新資訊28at.com

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

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

下面我先從普通結(jié)構(gòu)體說起,帶大家看看什么情形下用匿名結(jié)構(gòu)體會帶來編碼效率的提升。RYc28資訊網(wǎng)——每日最新資訊28at.com

具名結(jié)構(gòu)體

具名結(jié)構(gòu)體就是平時用的普通結(jié)構(gòu)體。RYc28資訊網(wǎng)——每日最新資訊28at.com

結(jié)構(gòu)體大家都知道,用于把一組字段組織在一起,來在Go語言里抽象表達(dá)現(xiàn)實世界的事物,類似“藍(lán)圖”一樣。RYc28資訊網(wǎng)——每日最新資訊28at.com

比如說定義一個名字為Car的結(jié)構(gòu)體在程序里表示“小汽車”RYc28資訊網(wǎng)——每日最新資訊28at.com

// 定義結(jié)構(gòu)體類型'car'type car struct {    make    string    model   string    mileage int}

用到這個結(jié)構(gòu)體的地方通過其名字引用其即可,比如創(chuàng)建上面定義的結(jié)構(gòu)體的實例RYc28資訊網(wǎng)——每日最新資訊28at.com

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

匿名結(jié)構(gòu)體

匿名結(jié)構(gòu)體顧名思義就是沒有名字的結(jié)構(gòu)體,通常只用于在代碼中僅使用一次的結(jié)構(gòu)類型,比如RYc28資訊網(wǎng)——每日最新資訊28at.com

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

上面這個函數(shù)中聲明的匿名結(jié)構(gòu)體賦值給了函數(shù)中的變量,所以只能在函數(shù)中使用。RYc28資訊網(wǎng)——每日最新資訊28at.com

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

用于解析接口響應(yīng)

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}

類似上面這種代碼一般在控制層寫,可以通過匿名結(jié)構(gòu)體實例解析到請求后再去創(chuàng)建對應(yīng)的DTO或者領(lǐng)域?qū)ο蠊┓?wù)層或者領(lǐng)域?qū)邮褂谩?span style="display:none">RYc28資訊網(wǎng)——每日最新資訊28at.com

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

比用map更健壯

這里再說一點使用匿名結(jié)構(gòu)體的好處。RYc28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

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

比如下面這個Reponse的結(jié)構(gòu)體類型的定義RYc28資訊網(wǎng)——每日最新資訊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類型RYc28資訊網(wǎng)——每日最新資訊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了RYc28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

總結(jié)

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

本文鏈接:http://m.rrqrq.com/showinfo-26-5711-0.html用了Go匿名結(jié)構(gòu)體,搬磚效率更高,產(chǎn)量更足了

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

上一篇: gRPC?vs?REST:創(chuàng)建API的方法比較

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

標(biāo)簽:
  • 熱門焦點
  • 影音體驗是真的強 簡單聊聊iQOO Pad

    大公司的好處就是產(chǎn)品線豐富,非常細(xì)分化的東西也能給你做出來,例如早先我們看到了新的vivo Pad2,之后我們又在iQOO Neo8 Pro的發(fā)布會上看到了iQOO的首款平板產(chǎn)品iQOO Pad。雖
  • iPhone賣不動了!蘋果股價創(chuàng)年內(nèi)最大日跌幅:市值一夜蒸發(fā)萬億元

    8月5日消息,今天凌晨美股三大指數(shù)高開低走集體收跌,道指跌0.41%;納指跌0.36%;標(biāo)普500指數(shù)跌0.52%。熱門科技股也都變化極大,其中蘋果報181.99美元,跌4.8%,創(chuàng)
  • 轎車從天而降電動車主被撞身亡 超速搶道所致:現(xiàn)場視頻讓網(wǎng)友吵翻

    近日,上海青浦區(qū)法院判決轎車從天而降電動車主被撞身亡案,轎車車主被判有期徒刑一年。案件顯示當(dāng)時男子駕駛轎車在上海某路段行駛,前車忽然轉(zhuǎn)彎提速超車,
  • 只需五步,使用start.spring.io快速入門Spring編程

    步驟1打開https://start.spring.io/,按照屏幕截圖中的內(nèi)容創(chuàng)建項目,添加 Spring Web 依賴項,并單擊“生成”按鈕下載 .zip 文件,為下一步做準(zhǔn)備。請在進(jìn)入步驟2之前進(jìn)行解壓。圖
  • 微軟邀請 Microsoft 365 商業(yè)用戶,測試視頻編輯器 Clipchamp

    8 月 1 日消息,微軟近日宣布即將面向 Microsoft 365 商業(yè)用戶,開放 Clipchamp 應(yīng)用,邀請用戶通過該應(yīng)用來編輯視頻。微軟于 2021 年收購 Clipchamp,隨后開始逐步整合到 Microsof
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時候了!學(xué)弟,最近學(xué)習(xí)的怎么樣啊 了不起學(xué)弟:最近學(xué)習(xí)的還不錯,每天都在學(xué)習(xí),每天都在進(jìn)步! 了不起:那你最近學(xué)習(xí)的什么呢? 了不起學(xué)弟:最近在學(xué)習(xí)C
  • 10天營收超1億美元,《星鐵》比《原神》差在哪?

    來源:伯虎財經(jīng)作者:陳平安即便你沒玩過《原神》,你一定聽說過的它的大名。恨它的人把《原神》開服那天稱作是中國游戲史上最黑暗的一天,有粉絲因為索尼在PS平臺上線《原神》,怒而
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯(lián)網(wǎng)企業(yè)調(diào)整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • 國行版三星Galaxy Z Fold5/Z Flip5發(fā)布 售價7499元起

    2023年8月3日,三星電子舉行Galaxy新品中國發(fā)布會,正式在國內(nèi)推出了新一代折疊屏智能手機三星Galaxy Z Fold5與Galaxy Z Flip5,以及三星Galaxy Tab S9
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
欧美不卡在线| 国内自拍一区| 欧美一区二区视频网站| 粉嫩aⅴ一区二区三区四区 | 国产丝袜美腿一区二区三区| 欧美激情一级片一区二区| 国产精品麻豆一区二区 | 亚洲精品1区2区| 亚洲激情六月丁香| 久久精品99| 韩日欧美一区二区三区| 91精品福利在线一区二区三区 | 久久毛片高清国产| 国产一区激情| 天堂成人国产精品一区| 精品视频一区二区不卡| 成人爱爱电影网址| 国产精品不卡在线| 欧美中文字幕| 韩日精品视频一区| 亚洲国产高清不卡| 亚洲一区国产| 国产高清久久久久| 中文字幕av资源一区| 午夜亚洲福利在线老司机| 韩国欧美一区二区| 欧美经典一区二区| 一本不卡影院| 蜜臀91精品一区二区三区| 在线观看欧美精品| 成人理论电影网| 中文字幕第一区二区| 一区二区三区精品视频在线观看| 亚洲一区二区三区在线播放 | 国产精品一品二品| 久久亚洲捆绑美女| 在线欧美视频| 亚洲一区二区在线免费看| 久久久777| 丁香啪啪综合成人亚洲小说 | 一区二区三区成人| 欧美日韩亚洲综合| 97久久超碰精品国产| 亚洲私人影院在线观看| 久久久噜噜噜久久狠狠50岁| 国产精品资源在线看| 久久久久国产精品免费免费搜索| 欧美一区高清| 亚洲欧洲日韩av| 亚洲一区观看| 视频一区二区中文字幕| 精品国免费一区二区三区| 亚洲午夜一区| 开心九九激情九九欧美日韩精美视频电影| 欧美一区二区三区白人| 欧美亚洲综合网| 不卡av免费在线观看| 亚洲精品高清视频在线观看| 欧美三区在线视频| 国内精品福利| 久久99久久99| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 丁香婷婷综合激情五月色| 亚洲蜜臀av乱码久久精品蜜桃| 91国产福利在线| 欧美精品成人| 蜜桃视频第一区免费观看| 久久精品视频网| 欧美曰成人黄网| 欧美日韩成人一区二区三区| 日本女人一区二区三区| 国产日韩综合av| 欧美亚洲一区三区| 黄色一区二区三区四区| 精品一区二区三区视频在线观看| 欧美岛国在线观看| 99热免费精品| 午夜精品网站| 国产毛片精品视频| 亚洲国产精品久久久久秋霞影院| 精品少妇一区二区三区视频免付费| 亚洲在线不卡| 色综合夜色一区| 久国产精品韩国三级视频| 国产精品久久久久久久久晋中 | 日韩女优av电影在线观看| 国产精品手机在线| 91丨porny丨最新| 久99久精品视频免费观看| 欧美国产一区在线| 色94色欧美sute亚洲线路一ni| 成人18视频在线播放| 伊人一区二区三区| 日韩欧美123| 国产精品日韩欧美一区二区三区 | 亚洲视频一区二区免费在线观看| 欧美日韩精品系列| 在线观看成人av| 国产呦萝稀缺另类资源| 中文字幕在线不卡| 欧美图区在线视频| 亚洲三级电影在线观看| 国产不卡视频一区二区三区| 一区二区三区中文字幕电影| 日韩精品中文字幕一区二区三区 | 蜜臀精品久久久久久蜜臀 | 国产精品色一区二区三区| 日韩午夜小视频| 欧美最新大片在线看 | 国产成人av一区| 麻豆国产91在线播放| 亚洲永久免费视频| 久久午夜羞羞影院免费观看| 色中色一区二区| 影音先锋国产精品| 国产ts人妖一区二区| 亚洲自拍偷拍麻豆| 亚洲精品一区二区三区精华液 | 91原创在线视频| 日韩中文字幕不卡| 中文字幕免费一区| 日韩一区二区三免费高清| 久久日韩精品| 伊伊综合在线| 欧美片网站免费| 极品少妇一区二区三区精品视频| 亚洲成人午夜影院| 亚洲欧美日韩中文字幕一区二区三区| 久久午夜电影网| 欧美日韩午夜在线视频| 欧美亚洲一区| 久久精品男女| 欧美亚洲一区二区在线观看| 在线视频国内一区二区| 99re66热这里只有精品4| caoporn国产精品| 国产精品一区二区x88av| 国产麻豆午夜三级精品| 国产v综合v亚洲欧| 99久久婷婷国产| 91香蕉视频mp4| 欧美激情四色| 亚洲作爱视频| 久久国产精品久久久久久电车 | 一本色道88久久加勒比精品| 午夜精品久久99蜜桃的功能介绍| 北岛玲一区二区三区四区| 国产精品中文欧美| 精久久久久久久久久久| 久久激情五月激情| 日本大胆欧美人术艺术动态 | 精品美女一区二区| 欧美国产欧美综合| 综合色中文字幕| 亚洲成a天堂v人片| 久久国产精品色| 国产一区二区在线影院| 国产suv精品一区二区三区| 国产成人精品一区二区三区四区 | 一本一道久久a久久精品 | 六月丁香综合| 91精品一区二区三区久久久久久| 久久无码av三级| 一区二区三区成人| 老司机精品视频导航| 成人高清视频在线| 伊人久久婷婷色综合98网| 久久久国产亚洲精品| 777亚洲妇女| 中国色在线观看另类| 亚洲国产一区视频| 国产一区二区三区高清播放| 9i在线看片成人免费| 亚洲精品色图| 欧美日免费三级在线| 久久久久久久精| 一区二区理论电影在线观看| 久久国产精品免费| 色综合久久综合| 亚洲激情另类| 色婷婷综合久色| 欧美精选一区二区| 日本一区二区三区国色天香 | 欧美涩涩网站| 日本道免费精品一区二区三区| 精品久久久久久久久久久久久久久久久 | 欧洲一区二区三区免费视频| 久久久综合激的五月天| 亚洲一区二区四区蜜桃| 成人小视频免费在线观看| 一级成人国产| 日韩视频一区二区三区在线播放| 中文一区在线播放| 蜜桃av噜噜一区二区三区小说| 97精品电影院| 在线看日韩精品电影| 中文字幕成人av| 国产一区二区三区香蕉| 91久久久久| 日韩欧美亚洲国产另类|