登录
首页 >  Golang >  Go问答

(*variable)和*&variable的差异是什么?

来源:stackoverflow

时间:2024-02-06 08:03:22 317浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《(*variable)和*&variable的差异是什么?》,正文内容主要涉及到等等,如果你正在学习Golang,或者是对Golang有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

问题内容

我正在使用 exercism.com 学习 go,并阅读教学大纲中推荐的文档和文章。

现在我在结构中并找到了下一个代码

package main

import "fmt"

type Employee struct {
  firstName, lastName string
  salary              int
  fullTime            bool
}

func main() {
  employee := &Employee{
    firstName: "Walddys",
    lastName:  "Dorrejo",
    salary:    1200,
    fullTime:  true,
  }
  fmt.Println("firstName", (*employee).firstName)
}

但是错误地,我输入了 fmt.println("firstname", *&employee.firstname),这给我带来了与之前在代码块中使用的相同结果。

我的问题是,使用这个指针是否存在不同或相同?


正确答案


&x 生成一个指向 x 的指针,而 *p 取消引用指针 p。因此 *& 有效地相互抵消,例如 v := *&xv := x 两个语句是相同的。

这意味着 *&employee.firstNameemployee.firstName 相同。

其中 employee 是指向结构体的指针,而 firstName 是该结构体的字段,则表达式 employee.firstName 实际上是 (*employee).firstName 的简写。

这意味着 *&employee.firstName 也与 (*employee).firstName 相同。

请注意,您应该始终更喜欢使用速记符号。

终于介绍完啦!小伙伴们,这篇关于《(*variable)和*&variable的差异是什么?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

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