第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我應(yīng)該在 struct 字段上還是在 struct 上創(chuàng)建指針?走

我應(yīng)該在 struct 字段上還是在 struct 上創(chuàng)建指針?走

Go
人到中年有點甜 2021-08-30 14:37:31
我想知道關(guān)于指針的最佳實踐是什么。我應(yīng)該在結(jié)構(gòu)上還是在其字段上定義它們。不過,我覺得很有道理定義一個指針結(jié)構(gòu)本身,但這里是我覺得耐人尋味的例子。如果所有的字段指針,為什么我不應(yīng)該使用指針到整個結(jié)構(gòu),而不是得到一個地址為每個字段?type Tag struct {    Tag     *string       `json:"tag,omitempty"`    SHA     *string       `json:"sha,omitempty"`    URL     *string       `json:"url,omitempty"`    Message *string       `json:"message,omitempty"`    Tagger  *CommitAuthor `json:"tagger,omitempty"`    Object  *GitObject    `json:"object,omitempty"`}下面的結(jié)構(gòu)內(nèi)容的樣品{  "tag": "v0.0.1",  "sha": "940bd336248efae0f9ee5bc7b2d5c985887b16ac",  "url": "https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac",  "message": "initial version\n",  "tagger": {    "name": "Scott Chacon",    "email": "schacon@gmail.com",    "date": "2011-06-17T14:53:35-07:00"  },  "object": {    "type": "commit",    "sha": "c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c",    "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c"  }}
查看完整描述

1 回答

?
梵蒂岡之花

TA貢獻1900條經(jīng)驗 獲得超5個贊

更有效的有非指針域,但在這種情況下,他們有一個奇怪的原因使用指針,在討論博客文章“走,REST API和指針”。

它看起來像你說的是結(jié)構(gòu)在這里定義的,在旅途中,GitHub的庫。它使各個領(lǐng)域的指針,以便它是微不足道的通過nil對場的任何子集(只是不指定它們)。當你構(gòu)建,說方式,PATCH通過GitHub的API更新的東西調(diào)用,您可以指定是否Description僅僅是不相關(guān)的請求(你沒有更新的說明),或者你是否打算集Description""。關(guān)鍵的一點是,""nil 有不同的含義PATCH調(diào)用他們的API。

如果您有類似的愿望來區(qū)分一個零字符串/結(jié)構(gòu)/等等。從“不適用此對象”,你也可以使用指針。如果你不需要,雖然,最好不要使各個領(lǐng)域的指針,因為這往往會令你的內(nèi)存使用模式更糟糕-小更多的內(nèi)存占用,更高速緩存未命中,更多的東西的GC需要跟蹤通過不加間接指針的那一層(但看起來稍微有點更詳細的編寫代碼時)是等的一種方法sql.NullString,這僅僅是一個具有布爾和字符串結(jié)構(gòu)。

在GitHub的情況下,它的任何性能影響是不是一個大問題 - GitHub的需要來響應(yīng)Web請求的時間將會大大超過任何CPU綁定工作的庫做反正。


查看完整回答
反對 回復(fù) 2021-08-30
  • 1 回答
  • 0 關(guān)注
  • 203 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號