簡體   English   中英

在Go中將Slice指針轉換為Slice

[英]Converting Slice pointer to Slice in go

我有一些方法可以返回切片指針中的數據,現在我必須將其轉換為切片數組。 如何將切片指針轉換為切片數組。

peerRoundState, err := s.nodeview.PeerRoundStates()
fmt.Println("This return value is slice pointer", peerRoundState)
if err != nil {
    return nil, err
}
//PeerRoundStates this is type of slice.
return &ConsensusResponse{
    RoundState: s.nodeview.RoundState().RoundStateSimple(),
    PeerRoundStates: peerRound,
}, nil

我想將切片指針的peerRoundState類型轉換為PeerRoundStates切片數組。

對於slice,您必須謹慎使用值slice而不是指針val := *ptr ,因為兩者都將指向相同的數據數組地址。 在切片指針中完成的更改也將反映在值切片上,因為切片數據結構包含對實際數據數組的引用。

查看操場示例中從指針到值的2種分配情況。 這里描述了兩種情況:

  1. 將切片復制為值-將切片屬性和地址復制到數據數組
  2. 復制slice元素-復制所有slice元素並創建一個新slice

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM