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綁定工作的庫做反正。
- 1 回答
- 0 關(guān)注
- 203 瀏覽
添加回答
舉報