登录
首页 >  Golang >  Go问答

将Slice指针转换为Slice的方法

来源:stackoverflow

时间:2024-03-13 17:27:22 315浏览 收藏

Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《将Slice指针转换为Slice的方法》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!


问题内容

我有返回切片指针中数据的方法,现在我必须将其转换为切片数组。如何将切片指针转换为切片数组。

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 切片数组。


解决方案


对于切片,您必须小心使用值切片而不是指针 val := *ptr,因为两者都会指向相同的数据数组地址。 切片指针中所做的更改也会反映在值切片上,因为切片数据结构包含引用实际数据数组。

检查 playground example 中的 2 种从指针到值的赋值情况。这里分两种情况进行说明:

  1. 将切片复制为值 - 将切片属性和地址复制到数据数组
  2. 复制切片元素 - 复制所有切片元素并创建一个新切片

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>