为了账号安全,请及时绑定邮箱和手机立即绑定

golang 中的 *[] *types.a 和 [] *types.b 有什么区别

golang 中的 *[] *types.a 和 [] *types.b 有什么区别

Go
繁花不似锦 2023-03-07 16:32:54
在查看代码时,我发现下面的函数声明func (c *Congress) Finalize(chain consensus.ChainHeaderReader, header *types.Header, state *state.StateDB, txs *[]*types.Transaction, uncles []*types.Header, receipts *[]*types.Receipt, systemTxs []*types.Transaction) error {其中两个参数txs *[]*types.Transaction, uncles []*types.Header,在golang中是什么意思只是想参考上面的代码来理解 golang 术语
查看完整描述

1 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

叔叔[]*types.Header

叔叔是切片。如果你将它复制到某个地方(可能通过将它作为函数参数传递),对其的更新将不会向后传播到原始(具有对元素的更改将传播的细微差别,但原始的大小/数据指针将保持不变) .

txs *[]*types.Transaction

txs 是一个指向切片的指针。它有点像一个“引用”,对指向的切片的更新传播到指向该切片的任何其他人。因此,如果您将指向切片的指针作为函数参数传递,该函数可能会更改指向的切片的属性(添加/删除元素)。


查看完整回答
反对 回复 2023-03-07
  • 1 回答
  • 0 关注
  • 58 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号