登录
首页 >  Golang >  Go问答

golang struct 定义类型用哪种方法?

来源:SegmentFault

时间:2023-02-24 19:47:52 453浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《golang struct 定义类型用哪种方法?》,涉及到go,有需要的可以收藏一下

问题内容

type Vertex struct {
    X, Y int
}

你们用哪种方式定义?

  • var p = Vertex{}
  • var q = &Vertex{}
  • var t Vertex

另外: Vertex 和 *Vertex 这两种类型哪个用的多

正确答案

如果的这个对象的作用域只是当前函数,那

Vertex
*Vertex
都一样,因为
*Vertex
不会发生逃逸,这个指针也会被分配在栈上。

另外一种情况就是如果这个结构体的对象会作为函数的返回值返回,如果使用了

*Vertex
这样的方式,那就有可能发生逃逸,那编译器就会将它分配在堆上,其实这是个结构体本身很简单,占用不了多大内存 ,完全可以使用
Vertex
,因为小对象值拷贝的代价远小于在堆上分配的代价

终于介绍完啦!小伙伴们,这篇关于《golang struct 定义类型用哪种方法?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

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