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

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

值接收器與指針接收器

值接收器與指針接收器

縹緲止盈 2019-12-09 15:14:24
對于我來說,目前尚不清楚,在這種情況下,我想使用值接收器而不是始終使用指針接收器?;仡櫼幌挛臋n:type T struct {    a int}func (tv  T) Mv(a int) int         { return 0 }  // value receiverfunc (tp *T) Mp(f float32) float32 { return 1 }  // pointer receiver該文檔還說:“對于基本類型,切片和小型結(jié)構(gòu)之類的類型,值接收器非常便宜,因此,除非該方法的語義要求使用指針,否則值接收器將是高效且清晰的?!笔紫?,它說“非常便宜”,但問題是它比指針接收器便宜。因此,我做了一個小的基準(zhǔn)測試(基于要點的代碼),向我展示了,即使對于只有一個字符串字段的結(jié)構(gòu),指針接收器也更快。結(jié)果如下:// Struct one empty string propertyBenchmarkChangePointerReceiver  2000000000               0.36 ns/opBenchmarkChangeItValueReceiver  500000000                3.62 ns/op// Struct one zero int propertyBenchmarkChangePointerReceiver  2000000000               0.36 ns/opBenchmarkChangeItValueReceiver  2000000000               0.36 ns/op(編輯:請注意,第二點在較新的go版本中變得無效,請參閱注釋)。第二點說,這是“高效而清晰的”,更多的是品味問題,不是嗎?就個人而言,我更喜歡在各處使用相同的方式來保持一致性。效率在什么意義上?在性能方面似乎指針幾乎總是更高效。具有int屬性的測試很少顯示Value接收器的最小優(yōu)勢(范圍為0.01-0.1 ns / op)有人可以告訴我一個值接收器比指針接收器更有意義的情況嗎?還是我在基準(zhǔn)測試中做錯了什么,我是否忽略了其他因素?
查看完整描述

2 回答

  • 2 回答
  • 0 關(guān)注
  • 546 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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