猿问

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

在查看代码时,我发现下面的函数声明

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 术语


繁花不似锦
浏览 59回答 1
1回答

陪伴而非守候

叔叔[]*types.Header叔叔是切片。如果你将它复制到某个地方(可能通过将它作为函数参数传递),对其的更新将不会向后传播到原始(具有对元素的更改将传播的细微差别,但原始的大小/数据指针将保持不变) .txs *[]*types.Transactiontxs 是一个指向切片的指针。它有点像一个“引用”,对指向的切片的更新传播到指向该切片的任何其他人。因此,如果您将指向切片的指针作为函数参数传递,该函数可能会更改指向的切片的属性(添加/删除元素)。
随时随地看视频慕课网APP

相关分类

Go
我要回答