登录
首页 >  Golang >  Go问答

Golang中结构体变量的赋值:按引用还是按值传递?

来源:stackoverflow

时间:2024-02-09 15:57:27 166浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《Golang中结构体变量的赋值:按引用还是按值传递?》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

问题内容

type temp struct{
   val int
}

variable1 := temp{val:5}  // 1
variable2 := &temp{val:6} // 2

2中,引用存储在变量2中。

1、复制操作是否正在进行?或者variable1也指向相同的内存部分?或者是否具有与 temp{val:5} 不同的内存部分?


正确答案


temp{val:5} 是一个 composite literal,它创建一个 temp 类型的值。

在第一个示例中,您使用了 short variable declaration,这相当于

var variable1 = temp{val: 5}

此处创建了一个变量 (variable1),该变量使用值 temp{val: 5} 进行初始化。

在第二个示例中,您获取复合文字的地址。这确实创建了一个变量,用文字的值进行初始化,并且该变量的地址将是表达式的结果。该指针值将被赋给变量 variable2

Spec: Compositle literals:

终于介绍完啦!小伙伴们,这篇关于《Golang中结构体变量的赋值:按引用还是按值传递?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

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