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

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)站制作
91精品一久久香蕉国产| 日韩中文字幕视频一区| 日韩精品激情视频在线| 久久亚洲精品国产精品黑人| 亚洲码av一区二区三区| 日韩精品熟女一区二区三区| 亚洲精品一区国产精品av| 91性感视频在线播放| avav男人天堂亚洲天堂| 国产原创中文剧情性感av| av一区二区日韩精品久| 91精品一久久香蕉国产| 亚洲福利视频在线观看免费| 97日韩在线免费视频网站| 国产一区二区三区不卡视频| 人妻少妇被猛烈进入中文字幕91| 国产亚洲精品热视频在线观看| 99热这里66只有精品| 精品国产一区二区av麻豆| av网址不卡在线免费观看| 欧美日韩黄色的三级视频| 成年免费视频一区二区三区| 国产一级一片内射视频| 91熟女成人精品一区二区| 欧美人妻精品一区二区| 日本中文字幕在线播放一区| 亚洲国产精品伦理在线看| 成人欧美黑人一区二区| 91国语对白在线观看| 日韩av在线黄色免费大全| 欧美亚洲另类日韩综合网| 日韩少妇一级淫片免费| 丝袜美腿诱惑国产在线| 依依成人影院在线观看av| 九九热精品在线观看视频| 午夜精品久久久免费视频| 欧美日韩国产成人一区| 蜜桃视频在线视频免费观看| 日本熟女中文字幕一区| 日韩精品在线观看你懂的| 久久热精品视频这里有|