欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

GoStruct初始化風(fēng)格的抉擇方法是什么

本篇內(nèi)容主要講解“Go Struct初始化風(fēng)格的抉擇方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Go Struct初始化風(fēng)格的抉擇方法是什么”吧!

創(chuàng)新互聯(lián)建站主要企業(yè)基礎(chǔ)官網(wǎng)建設(shè),電商平臺(tái)建設(shè),移動(dòng)手機(jī)平臺(tái),微信小程序開發(fā)等一系列專為中小企業(yè)按需求定制設(shè)計(jì)產(chǎn)品體系;應(yīng)對(duì)中小企業(yè)在互聯(lián)網(wǎng)運(yùn)營的各種問題,為中小企業(yè)在互聯(lián)網(wǎng)的運(yùn)營中保駕護(hù)航。

三種代碼風(fēng)格

風(fēng)格一

在 Go 中我們常?!胺祷貙?shí)現(xiàn)(struct),依賴接口”,其實(shí)就是在函數(shù)返回的時(shí)候我們返回一個(gè)具體的實(shí)現(xiàn),函數(shù)的參數(shù)或者是 Struct  的成員部分我們依賴接口,這個(gè)風(fēng)格看起來是違背了這個(gè)原則的

// repository 存儲(chǔ)庫 type repository struct {     db *gorm.DB }  // NewAZRepository NewAZRepository func NewAZRepository(db *gorm.DB) domain.IAzRepository {     return &repository{db: db} }

風(fēng)格二

這個(gè)風(fēng)格返回了實(shí)現(xiàn),并且由于并沒有導(dǎo)出看起來也具有封裝的特性,但是如果你運(yùn)行 golint  你就會(huì)發(fā)現(xiàn)會(huì)拋出錯(cuò)誤,因?yàn)檫@么寫,會(huì)導(dǎo)致我們用導(dǎo)出的方法將沒有導(dǎo)出 struct 給暴露了出去

// repository 存儲(chǔ)庫 type repository struct {     db *gorm.DB }  // NewAZRepository NewAZRepository func NewAZRepository(db *gorm.DB) *repository {     return &repository{db: db} }

風(fēng)格三

這個(gè)寫法的主要問題是,由于 Repository 被導(dǎo)出,所以在外部其他的包中就可以直接通過 &Repository{}  進(jìn)行初始化,這樣初始化之后使用就會(huì)導(dǎo)致 panic,因?yàn)槌蓡T函數(shù)是一個(gè) nil 指針

// Repository 存儲(chǔ)庫 type Repository struct {     db *gorm.DB }  // NewAZRepository NewAZRepository func NewAZRepository(db *gorm.DB) *Repository {     return &Repository{db: db} }

選擇

選擇總是困難的,帶著這個(gè)問題我咨詢了同組的同事還有好幾個(gè) Go  語言交流群的同學(xué),其中大部分都會(huì)選擇風(fēng)格三,小部分會(huì)選擇風(fēng)格一,風(fēng)格二幾乎沒有人選擇。最后我選什么呢?

最后我的選擇是風(fēng)格一,這是針對(duì)場(chǎng)景來的,因?yàn)槲覀兊倪@個(gè)包其實(shí)不希望其他包直接依賴實(shí)現(xiàn),因?yàn)楹罄m(xù)有可能隨著發(fā)展被單獨(dú)拆分成一個(gè)微服務(wù)或者是需要更換存儲(chǔ)庫,如果外部有包直接依賴  repository 會(huì)導(dǎo)致后續(xù)的重構(gòu)比較困難

除此之外,我們?cè)谄渌胤揭话氵€是會(huì)選擇風(fēng)格三,因?yàn)榻Y(jié)構(gòu)體名不導(dǎo)出,外部其實(shí)沒有比較好的辦法進(jìn)行初始化,例如想要 var r Repository  ,至于前面提到的直接字面量初始化的問題,我們可以通過統(tǒng)一代碼風(fēng)格解決。

在 外部包 中除了用于參數(shù)傳遞的 Option 結(jié)構(gòu)之外,其余的不允許直接通過 &XXX{} 的方式進(jìn)行初始化

到此,相信大家對(duì)“Go Struct初始化風(fēng)格的抉擇方法是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

網(wǎng)頁名稱:GoStruct初始化風(fēng)格的抉擇方法是什么
分享鏈接:http://aaarwkj.com/article24/peecje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管動(dòng)態(tài)網(wǎng)站、ChatGPT、網(wǎng)站建設(shè)建站公司、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
韩国av网址在线观看| 亚洲天堂av现在观看| 欧美精品中出一区二区三区| 日韩有码一区在线观看| 高清偷自拍亚洲精品三区| 亚洲一区二区三区不卡伦理| 濑亚美莉在线观看一区二区三区| 一区二区日韩激情在线观看视频| 日本一欧美一欧美一亚洲| 国产精品国产三级国产专区 | 美女呻吟被爽到高潮在线| 精品人妻av区天天看片| 香蕉视频欧美日韩国产| 国产三级三级三级免费看| 亚欧成人永久免费视频| 一二三日韩电影在线观看| 亚洲精品一区二区三区高潮| 亚洲综合美女极品啪啪啪| 一区二区在线视频中文字幕 | 日本一区二区三区久久久| 欧美一区二区大香蕉视频| 91天美精东果冻麻豆| 东京热男人的天堂色狠爱| 国产女主播福利在线播放| 天天精品国产av九九久久久| 可以免费看的日韩黄色| 日麻批视频在线免费观看| 欧美精品欧美激情免费区| 91好色视频在线观看| 最新亚洲国产高清激情| 亚洲精品丝袜成人偷拍| 色婷婷久久五月中文字幕| 亚洲精品一区二区毛豆| 欧美日韩精品一区二区在线| 91白丝视频在线观看| 一区二区三区福利视频在线观看| 亚洲欧洲成熟熟女妇专区乱| 国产精品男人在线播放| 日韩欧美亚洲国产另类| 日本一区二区 视频| 九色91成人在线视频|